我正试图设置网络代理使用我的局域网的互联网连接来更新包。虽然代理设置适用于我的firefox,但包管理器仍然无法连接到Internet。我在System >> Preferences >> Network Proxy
中设置了代理,我也在'详细信息'中输入了代理的用户/通行证。
如何确保正确应用代理网络?
首先,确保在更改gnome-network-properties(System -> Preferences -> Network Proxy
)中的代理设置时单击“Apply the system-wide ...”。这将设置http_proxy和相关的环境变量。在代理设置为“在系统范围内应用...”之后启动的所有程序都应该可以使用此选项。要确定,您可以退出并重新登录以仔细检查。
如果您打开终端并使用命令set | grep -i proxy
,您将看到相关的环境变量设置。理想情况下这应该足够了。
但是,我遇到了上述所有情况仍然不起作用的情况:即使按照上述方式设置,Synaptic或apt-get
(通过命令行)也无法通过代理连接到Internet。在这种情况下,一种解决方案是在/etc/apt/apt.conf.d
中添加一个文件,其中包含apt的特定代理配置(这将由apt-get,aptitude,synaptic和Ubuntu软件中心使用)。
请按照以下步骤操作:
创建/etc/apt/apt.conf.d/40proxy
gksudo gedit /etc/apt/apt.conf.d/40proxy
将以下内容放入其中 - 根据您的具体情况修改内容。
Acquire::http::Proxy "http://proxy.site.com:8080";
如果你有一个用户名和密码,你可以在代理URL中编码(如此,http://username:[email protected]:8080
),或者你可以使用类似 ntlmaps 的东西来更好地控制。
更多信息可以找到 这里 。
如果您遇到问题(这是您的问题所暗示的),上面有一堆很好的答案可以帮助您。但是,这是检查是否已应用网络代理设置的狭隘问题的答案:
方法1:启动一个新的Shell(xterm),然后检查环境变量:
% env | grep -i proxy
http_proxy=http://172.17.0.130:8080/
ftp_proxy=ftp://172.17.0.130:8080/
all_proxy=socks://172.17.0.130:8080/
...
请注意,现有shell将不具有更新的环境变量。因此,如果您正在执行查看其代理设置的环境变量的命令,请在创建的Shell中启动它之后对代理设置的更改。
方法2:使用gconftool
查询gconf设置(存储在~/.gconf
下):
% gconftool -R /system/proxy
old_ftp_port = 0
old_ftp_Host =
old_secure_port = 0
old_secure_Host =
autoconfig_url =
mode = manual
ftp_Host = 172.17.0.130
secure_Host = 172.17.0.130
...
% gconftool -R /system/http_proxy
use_authentication = false
authentication_password =
authentication_user =
ignore_hosts = [localhost,127.0.0.0/8,*.local,...]
use_http_proxy = true
port = 8080
use_same_proxy = true
Host = 172.17.0.130
正如其他人所说,请确保您的浏览器和其他应用程序设置为“使用系统代理设置”。
您是否单击了“应用系统范围(突出显示)”按钮?如果您没有代理设置是Gnome会话的本地设置,因此当root
关闭下载包时,它将不会使用相同的网络设置。
如果你试试:
curl http://www.google.com
从命令行,然后如果你得到HTML代理正在工作。
要临时设置代理,您可以启动终端并输入
export http_proxy="http://yourproxy:yourport"
然后启动程序,例如用于包管理的Synaptic。控制台可能会为您提供有用的输出信息。
有人想检查/添加设置:
在/ etc /环境
试试看:
http_proxy =“http:// user:password @ proxyserver:port”https_proxy =“http:// user:password @ proxyserver:port”ftp_proxy =“http:// user:password @ proxyserver:port”
单击“Apply System-Wide ...”并检查所有Internet应用程序是否都设置为使用系统代理。没有什么比这更重要了。无需篡改配置文件和启动脚本。
我也在使用代理,我必须专门为Synergy和更新管理器设置代理设置(使用Synergy:Configuration-> Preferences-> Network)。没有选择使用“系统设置”,即使它应该工作,在系统级别更改代理服务器从来没有让我能够更新:-(
我对一个让它工作的解决方案很感兴趣:-)