前面我们讲了通过Python自动化修改Windows的系统代理,那么在Linux下是不是也可以呢?
在Linux下我们通过Shell/终端就可以实现自动化修改了。
分两种应用场景,一种是在终端中使用的代理,一种是系统级别的代理。
终端中的代理
直接在终端中执行
export http_proxy=http://127.0.0.1:1087
export https_proxy=http://127.0.0.1:1087
export socks_proxy=http://127.0.0.1:1087
执行完后仅对当前终端生效,如果想长期生效,请修改/etc/profile
或~/.bashrc
等文件。
系统代理
系统代理我们只讲GNOME桌面,适用CentOS/Ubuntu等发行版,对于大多数Linux用户来说够用了。
gnome是通过gsettings
来管理GNOME3配置的,需要以当前登录的用户身份操作,而不是root
。
获取当前gnome的系统代理信息
gsettings get org.gnome.system.proxy mode
gsettings get org.gnome.system.proxy.http host
gsettings get org.gnome.system.proxy.http port
gsettings get org.gnome.system.proxy.https host
gsettings get org.gnome.system.proxy.https port
mode有三种:
- none 无代理
- manual 手动代理: 修改http,https,socks等
- auto 代理自动配置: PAC
设置手动代理
gsettings set org.gnome.system.proxy mode "manual"
gsettings set org.gnome.system.proxy.http host "127.0.0.1"
gsettings set org.gnome.system.proxy.http port 1087
gsettings set org.gnome.system.proxy.https host "127.0.0.1"
gsettings set org.gnome.system.proxy.https port 1087
取消系统代理:
gsettings set org.gnome.system.proxy mode "none"
还可以启用身份验证:
gsettings set org.gnome.system.proxy.http use-authentication true
gsettings set org.gnome.system.proxy.http authentication-user "xxx"
gsettings set org.gnome.system.proxy.http authentication-password "xxx"
注意:需要登录该操作方可生效,所以不适用crontab
环境!