如何使用 shell 脚本设置系统范围的代理地址?

如何使用 shell 脚本设置系统范围的代理地址?

我想通过我的 Qt 应用程序设置系统代理地址。所以我想知道我是否可以编写一个脚本,每次更改代理地址时都可以由我的应用程序执行。

我试过 :

 #! /bin/sh 
 echo "# Generated by Application"

 export $1
 echo "Proxy Address ${1}

但这个脚本没有成功。我认为它无法执行“导出”命令。

有人能帮我解决这个问题吗?

答案1

尝试这个:

#! /bin/sh
echo "# Generated by Application"
export http_proxy='http://$1/'
export ftp_proxy='http://$1/'

笔记:

  • 你的参数字符串($1)应该是这样的

user_id:[email protected]:proxy_port

  • 如果你不使用用户名和密码,那么参数字符串($1)应该是

proxy.server.addr:proxy_port

  • 如果需要,您可以导出 https_proxy 和 socks_proxy。
  • 要查看您的代理是否已设置,请使用env | grep proxy

要使用 shell 脚本更改系统代理,请尝试以下操作:

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http enabled true
gsettings set org.gnome.system.proxy.http host 'proxy.server.addr'
gsettings set org.gnome.system.proxy.http port proxy_port

如果你有用户认证密码和id

gsettings set org.gnome.system.proxy.http authentication-user 'user_id'
gsettings set org.gnome.system.proxy.http authentication-password 'password'

对所有其他代理使用 http_proxy

gsettings set org.gnome.system.proxy use-same-proxy true

为任何主机设置绕过代理

gsettings set org.gnome.system.proxy ignore-hosts "['localhost',  '127.0.0.1', 'all', 'other', 'hosts']"

相关内容