设置 Ubuntu 系统代理设置,无需从命令行重新启动

设置 Ubuntu 系统代理设置,无需从命令行重新启动

我在用Ubuntu 14.04。我想http proxy从命令行更改设置。这应该相当于在 GUI 中进行更改(所有设置 -> 网络 -> 网络代理)并单击按钮Apply System Wide。我不想重新启动/注销系统,因为我计划从脚本(bash)动态更改设置。

答案1

据我了解,通过 GUI 在系统范围内设置代理可以做三件事:

  1. 在dconf数据库中设置相应的值。
  2. 设置 中的值/etc/environment
  3. 设置 中的值/etc/apt/apt.conf

1和3立即生效。/etc/environment在登录时解析,因此您需要注销并登录才能生效。 (请注意,这是正确的登录,而不仅仅是运行登录 shell。)以下脚本应该是等效的(假设使用 http/https 代理):

#! /bin/bash
HTTP_PROXY_HOST=proxy.example.com
HTTP_PROXY_PORT=3128
HTTPS_PROXY_HOST=proxy.example.com
HTTPS_PROXY_PORT=3128

gsettings set org.gnome.system.proxy mode manual
gsettings set org.gnome.system.proxy.http host "$HTTP_PROXY_HOST"
gsettings set org.gnome.system.proxy.http port "$HTTP_PROXY_PORT"
gsettings set org.gnome.system.proxy.https host "$HTTPS_PROXY_HOST"
gsettings set org.gnome.system.proxy.https port "$HTTPS_PROXY_PORT"

sudo sed -i.bak '/http[s]::proxy/Id' /etc/apt/apt.conf
sudo tee -a /etc/apt/apt.conf <<EOF
Acquire::http::proxy "http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/";
Acquire::https::proxy "http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/";
EOF

sudo sed -i.bak '/http[s]_proxy/Id' /etc/environment
sudo tee -a /etc/environment <<EOF
http_proxy="http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/"
https_proxy="http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/"
EOF

尽管 PAM 需要重新登录才能/etc/environment在任何地方应用,但在当前 shell 中您仍然可以提取该文件中的值:

export http_proxy=$(pam_getenv http_proxy)

答案2

我制作了一个工具 ProxyMan 来简化整个任务。您可以从以下位置下载:这个链接

另外,如果您对后端功能更感兴趣,可以查看代码。下载 zip 文件,解压它们,转到终端中解压文件的位置,以下命令将帮助您:

  • bash main.sh:设置和取消设置代理。
  • bash proxy_check.sh:检查您当前的代理设置。

答案3

我认为这应该避免头痛:

代理设置视频

一个很好的教程,在 python 中运行。在 Ubuntu 12.04/12.10/13.04/13.10/14.04/14.10 及更高版本中设置简单且经过身份验证的代理设置 100% 工作。

解决方案1 系统必须安装“python”。使用解释器运行命令:命令:“sudo python setproxy.py [ Proxy_Server ] [ proxy_port ] [ PROXY_USER ] [ proxy_password ]”

视频:https://www.youtube.com/watch?v=eBtzKa-dvJg

[ Proxy_Server ] : proxy.test.ts
[ Proxy_port ] : 8080
[ PROXY_USER ] : domainuser
[ Proxy_password ] : " the_password "

解决方案2: 命令:

"Sudo apt- get install python- support"
"Sudo apt- get install ntlmaps "

根据需要填写字段:

- Proxy server
- Proxy port
- User
- Password

相关内容