在工作中,我在许多文件/应用程序上设置了代理。
我/apt/apt/apt.conf
已经Acquire::http::Proxy "http://myproxy.example.com:8888"
设定了。
我/etc/wgetrc
有:
https_proxy = myproxy.example.com:8888
http_proxy = myproxy.example.com:8888
ftp_proxy = myproxy.example.com:8888
use_proxy = on
我/etc/environment
有:
http_proxy="http://myproxy.example.com:8888"
https_proxy="https://myproxy.example.com:8888"
并且在我的network and proxy settings
系统中HTTP
,也设置了、、代理Secure HTTP
。FTP
正如您所看到的,我几乎在所有地方都设置了代理!
但是当我在家时,这一切都变得很烦人,因为我必须进入每个文件并注释掉代理设置。您是否知道一个应用程序/脚本可以快速禁用所有这些文件中的代理设置,然后快速重新启用所有设置?
此外,我是否需要在所有这些文件中都包含这些代理设置,我可以减少它们吗?
答案1
如果您在图形运行级别中运行,则使用默认的 Ubuntu 网络管理器应该可以为所有内容设置代理设置。在大学时,我曾经在 Gnome 的网络管理器中设置代理,然后会为终端会话设置代理设置(作为示例)。现在甚至可能能够设置“位置”(但我不使用 Ubuntu,所以我可以肯定地说)。
Debian 还可以使用 下的脚本指定不同的位置(以及设置)/etc/networking/
。请参阅这里尽管文档指出旧的ifup
和ifplugd
脚本已被弃用。我认为这同样适用于 Ubuntu。
我相信在命令行上,只需设置http_proxy
/https_proxy
环境变量就足够了。wget
将从那里读取代理信息,您不需要在文件中设置它wgetrc
。
答案2
我遇到了类似的情况,不仅需要我打开和关闭代理设置,而且有时还需要在另一个位置使用不同的代理。
我所做的是在我的计算机上安装 squid(任何其他能够使用父代理的代理都可以),然后将我的所有应用程序指向我自己计算机上的这个本地代理。
我保留了一个直接使用互联网的 squid 配置文件,以及一个让 squid 对我需要使用的每个代理使用父代理的配置。
看到好处了吗?当我移动到另一个位置时,我不必触碰任何程序的代理设置,只需更改一个文件(属于 squid 的文件),然后重新加载 squid。我将配置文件命名为易于识别的名称,切换过程如下:
cd /etc/squid
sudo cp squid.conf.work1 squid.conf
sudo service squid reload
对我来说,让 squid 使用直接网络的配置是“squid.conf.direct”。
希望这可以帮助 :)