Ubuntu – How to set system-wide proxy address using shell script

networkingPROXYscripts

I want to set system Proxy address through my Qt application. So i was wondering if i could write a script which can be executed by my application every time to change the proxy address.

I tried :

 #! /bin/sh 
 echo "# Generated by Application"

 export $1
 echo "Proxy Address ${1}

but this script was not successful. I think it was unable to execute "export" command.

Can anyone help me resolving this issue ?

Best Answer

  • Try this:

    #! /bin/sh
    echo "# Generated by Application"
    export http_proxy='http://$1/'
    export ftp_proxy='http://$1/'
    

    Note:

    • your argument string($1) should be like this

    user_id:pass@proxy.server.addr:proxy_port

    • If you do not use userid and password then argument string($1) should be

    proxy.server.addr:proxy_port

    • you can export https_proxy and socks_proxy if you need.
    • To see if your proxy is set or not use env | grep proxy

    To change system proxy using shell script try these:

    gsettings set org.gnome.system.proxy mode 'manual'
    gsettings set org.gnome.system.proxy.http enabled true
    gsettings set org.gnome.system.proxy.http host 'proxy.server.addr'
    gsettings set org.gnome.system.proxy.http port proxy_port
    

    If you have user authentication pass and id

    gsettings set org.gnome.system.proxy.http authentication-user 'user_id'
    gsettings set org.gnome.system.proxy.http authentication-password 'password'
    

    To use http_proxy for all other proxy

    gsettings set org.gnome.system.proxy use-same-proxy true
    

    To set bypass proxy for any host

    gsettings set org.gnome.system.proxy ignore-hosts "['localhost',  '127.0.0.1', 'all', 'other', 'hosts']"