Linux自动化修改系统代理

前面我们讲了通过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有三种:

  1. none 无代理
  2. manual 手动代理: 修改http,https,socks等
  3. 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环境!

Leave a Comment

豫ICP备19001387号-1