21

Can you show me the command line to turn off proxy when I am using the command line terminal in Ubuntu?

migrated from stackoverflow.com Oct 5 '10 at 17:17

This question came from our site for professional and enthusiast programmers.

  • where do you need to disable it? Proxy settings are application dependant, as far as I know. – Diskilla Oct 5 '10 at 17:27
25

As the other answer says there are some programs that don't look at the system at all you may have to set them up individually. For instance wget has a number of proxy options, that can be used to ignore or adapt the environmental proxy config during execution. Here are a number of areas in which the systems proxys can be set up.

  • How my system looks, note that you will have to change the specifed system configuration for you networking Environment.

Some Linux systems use /etc/environment

$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
http_proxy="http://192.168.1.250:8080/"
ftp_proxy="ftp://192.168.1.250:8080/"
https_proxy="https://192.168.1.250:8080/"  

There is no uniform single set up other use env

$ env | grep -i proxy
NO_PROXY=localhost,127.0.0.0/8,127.0.1.1
http_proxy=http://192.168.1.250:8080/
FTP_PROXY=ftp://192.168.1.250:8080/
ftp_proxy=ftp://192.168.1.250:8080/
all_proxy=socks://192.168.1.250:8080/
ALL_PROXY=socks://192.168.1.250:8080/
HTTPS_PROXY=https://192.168.1.250:8080/
https_proxy=https://192.168.1.250:8080/
no_proxy=localhost,127.0.0.0/8,127.0.1.1
HTTP_PROXY=http://192.168.1.250:8080/  

I would check out the ~/.bashrc to have setting applied automatically on system start up.

$ man env
$ man set
$ # The file section near the end of the bash manual.
$ man bash 

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bashrc
              The systemwide per-interactive-shell startup file
       /etc/bash.bash.logout
              The systemwide login shell cleanup file, executed when  a  login
              shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The  individual  login shell cleanup file, executed when a login
              shell exits
       ~/.inputrc
              Individual readline initialization file
14

Assuming you're talking about typical command-line software and an HTTP proxy:

Most command-line tools pick this up from the environment variable HTTP_PROXY, so prior to running a command:

unset HTTP_PROXY

There can be some variation between software/platforms, and you might need to unset http_proxy also.

Note that many programs store this information in their own config files, and are likely to ignore the environment, so you would have to address those on a case-by-case basis.

3

If you are looking to change the proxy for GUI programs you may have some success if they use the "system" proxy settings from Gnome. These are the proxy settings settable from the Control Panel.

You can look at and then change the the current settings with gconftool:

$ gconftool-2 -a /system/http_proxy
  ignore_hosts = [localhost,127.0.0.0/8,*.local]
  authentication_user =
  authentication_password =
  use_authentication = false
  use_http_proxy = true
  port = 8080
  host = http://myproxy.mydomain.org/

To turn off the proxy - set use_http_proxy to false:

$ gconftool-2 -t bool -s /system/http_proxy/use_http_proxy false

You can check the results using the -a line from above. Alternatively to set a new proxy:

$ gconftool-2 -t string -s /system/http_proxy/host "http://newproxy.mydomain.org/"
$ gconftool-2 -t int -s /system/http_proxy/port 8088
3
export http_proxy=

You can check to see if they are gone by running

echo $http_proxy

It should return a blank line

2

You can set or unset all variables at once in bash:

$ export {http,https,ftp}_proxy="http://proxy-server:port"
$ unset {http,https,ftp}_proxy

$ export {HTTP,HTTPS,FTP}_PROXY="http://proxy-server:port"
$ unset {HTTP,HTTPS,FTP}_PROXY

You can also add a shortcut to you ~/.bashrc:

# Set Proxy
function setproxy() {
    export {http,https,ftp}_proxy="http://proxy-server:port"
    export {HTTP,HTTPS,FTP}_PROXY="http://proxy-server:port"
}

# Unset Proxy
function unsetproxy() {
    unset {http,https,ftp}_proxy
    unset {HTTP,HTTPS,FTP}_PROXY
}

Don't forget to reload .bashrc:

$ . ~/.bashrc

or

$ source ~/.bashrc

More details at [S]hell Hacks.

  • This is good answer, but I am afraid that there are more places in the system, when proxy settings needs to be changed: askubuntu.com/questions/664777/…. – matandked Jul 11 '17 at 10:33
  • Every software may use its own proxy settings (like npm or apt, to name a few). So http_proxy covers most of them, but you need to check the documentation to be sure which one it uses. – Adriano P Jul 12 '17 at 15:16
1

If all the things written above don't work:

  1. Go to System Settings.
  2. Go to Network.
  3. Go to network-proxy and even if the selected choice is "none", go to "manual" and remove all the saved proxies.
  4. Apply systemwide.

This worked for me!

  • 1
    The OP asked specifically for a command line option. They might not have installed the GUI – Burgi May 27 '16 at 8:29
0

To disable all proxy variables in one line for your current session:

unset `env | grep proxy | cut -d= -f1`
0

You may delete all {http_proxy, https_proxy} etc from /etc/environment. just sudo gedit /etc/environment and then manually delete all those proxies and save.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.