天天看点

如何在Ubuntu系统中进行系统级的代理设置

在Ubuntu系统中我们往往需要设置代理上网,比如在Ubuntu22.04中,通过图形化界面的设置方式如下:

这里假设代理服务器地址为:

192.168.1.103:1080

如何在Ubuntu系统中进行系统级的代理设置
如何在Ubuntu系统中进行系统级的代理设置

==============================================

上面的操作是在图形化界面中进行的,但是平时使用Ubuntu系统往往会用到server版本,此时就无法使用图形化界面进行设置了,那么这又该如何呢?

其实,上面的操作等价与在shelll终端中进行环境变量设置,如:

export http_proxy=http://192.168.1.103:1080/
export HTTP_PROXY=http://192.168.1.103:1080/

export https_proxy=http://192.168.1.103:1080/
export HTTPS_PROXY=http://192.168.1.103:1080/


export all_proxy=socks://192.168.1.103:1080/
export ALL_PROXY=socks://192.168.1.103:1080/


export no_proxy=localhost,127.0.0.0/8,::1
export NO_PROXY=localhost,127.0.0.0/8,::1      

在linux系统中负责代理设置的变量有:

http_proxy

HTTP_PROXY

https_proxy

HTTPS_PROXY

ftp_proxy

FTP_PROXY

all_proxy

ALL_PROXY

no_proxy

NO_PROXY

由于操作系统的变量设置区分大小写,而且不同的应用读写变量时有的是根据大写的变量,有的是根据小写的变量,因此在设置时需要大小写变量都进行设置。

还有all_proxy和ALL_PROXY的权限是最低的,如果其他的proxy环境变量有进行设置则优先读取其他变量的设置。

说明一下,之所以设置这些变量可以使一些应用读取到proxy设置从而进行代理,其原因是这些应用在进行网络连接时默认是会优先读取这些proxy环境变量,如果这些变量有设置,那么就默认使用这些变量的设置进行proxy上网,当然也有一些应用是不读取这些环境变量的,因此对于这种不读取系统proxy变量的应用进行代理上网时往往就需要一些单独的设置,比较常见的有ssh等,当然对于这些应用也有单独设置代理的方法,如:

SSH如何通过proxy进行服务器连接

git clone 如何通过proxy进行远程代码仓库拷贝下载

需要注意有一种说法是在进行all_proxy和ALL_PROXY设置时,可以写成下面的形式:

export all_proxy=socks5h://192.168.1.103:1080/
export ALL_PROXY=socks5h://192.168.1.103:1080/      

之所以这样写是因为socks5h代表进行proxy时将dns查询也进行proxy,而socks则代表在进行proxy时不对dns查询进行proxy,不过这种说法并没有被验证,不过在ssh代理的设置过程中socks5h确实代表将dns查询也进行proxy。

可以看下在操作系统图形化界面中设置好代理后,在终端中对这些变量的输出:

如何在Ubuntu系统中进行系统级的代理设置

========================================================

参考:

​​https://www.liangzl.com/get-article-detail-34403.html​​

继续阅读