如何在Ubuntu系统中进行系统级的代理设置
在Ubuntu系统中我们往往需要设置代理上网,比如在Ubuntu22.04中,通过图形化界面的设置方式如下:
这里假设代理服务器地址为:
192.168.1.103:1080
==============================================
上面的操作是在图形化界面中进行的,但是平时使用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等,当然对于这些应用也有单独设置代理的方法,如:
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。
可以看下在操作系统图形化界面中设置好代理后,在终端中对这些变量的输出:
========================================================
参考:
https://www.cnblogs.com/kasuganokusa/p/15839205.html
https://www.liangzl.com/get-article-detail-34403.html
========================================================
posted on 2022-10-19 19:39 Angry_Panda 阅读(19640) 评论(0) 编辑 收藏 举报