如何检查是否真的应用了网络代理?


16

我试图将网络代理设置为使用我局域网的Internet连接来更新软件包。虽然代理设置可在我的firefox上使用,但程序包管理器仍无法连接到Internet。我已经设置了代理,System >> Preferences >> Network Proxy并且也在“详细信息”中输入了代理的用户/密码。

如何确保正确应用代理网络?

Answers:


12

首先,请确保在gnome-network-properties(System -> Preferences -> Network Proxy)中更改代理设置时单击“应用系统范围...” 。这将设置http_proxy和相关的环境变量。对于代理设置为“已应用系统范围...”之后启动的所有程序,这应该可用。确实可以确定,您可以注销并重新登录以再次检查。

如果打开终端并使用命令set | grep -i proxy,则会看到相关的环境变量集。理想情况下,这应该足够了。

但是,我遇到了以上所有方法仍然无法使用的情况:apt-get即使以上述方式进行设置,Synaptic或(通过命令行)也无法通过代理连接到Internet。在这种情况下,一种解决方案是/etc/apt/apt.conf.d为apt 添加具有特定代理配置的文件(apt-get,aptitude,synaptic和Ubuntu软件中心将使用该文件)。

请按照以下步骤操作:

  1. 创建/etc/apt/apt.conf.d/40proxy

    gksudo gedit /etc/apt/apt.conf.d/40proxy

  2. 将以下内容放入其中-修改内容以适合您的情况。

    Acquire::http::Proxy "http://proxy.site.com:8080";

如果您http://username:password@proxy.site.com:8080有用户名和密码,则可以在代理url中进行编码(例如),也可以使用ntlmaps之类的控件进行更好的控制。

这里可以找到更多信息。


1
谢谢!首先介绍set。然后正如您所预料的那样,apt-get和更新管理器仍然存在问题,并且通过创建40proxy解决了问题。唯一剩下的问题只有root才能看到代理。例如wget whatismyip.com,普通用户和root具有不同的输出。
Alexar 2010年

您能详细说明剩下的问题吗?例如,如果您使用设置代理System -> Preferences -> Network ProxyApply System-wide...然后说以root用户身份运行的命令看不到此设置?(意思sudo wget whatismyip.com是不返回代理的IP地址?)
koushik 2010年

另一方面,请确保您备份了这个40proxy文件(例如,您的主文件夹中的某个位置),而我却神秘地消失了。我认为Direct connection to InternetNetwork Proxy对话框上进行选择可能会消除这种情况。我的系统也可能有问题,但不确定。
koushik 2010年

5

您是否单击了“应用系统范围(突出显示)”按钮?如果您不代理设置在您的Gnome会话中是本地的root,那么在关闭下载软件包时,它将不会使用相同的网络设置。

代理设定


是的,我已经做到了。
Alexar'9

5

上面有很多很好的答案,如果您遇到问题(这意味着您的问题),将对您有所帮助。但是,这是对以下狭义问题的答案:检查是否已应用网络代理设置:

方法1:启动一个新的外壳程序(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/
...

请注意,现有的外壳程序将没有更新的环境变量。因此,如果要执行的命令查看环境变量的代理设置,请在更改代理设置创建的外壳中启动它。

方法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

如其他人所述,请确保将浏览器和其他应用设置为“使用系统代理设置”。


1

要临时设置代理,您可以启动终端并输入

export http_proxy="http://yourproxy:yourport"

然后启动程序,例如用于软件包管理的Synaptic。控制台可能会为您提供有用的输出,以解决问题。


1
要仅为一个命令设置环境变量,您还可以使用:http_proxy="http://yourproxy:yourport" synaptic
hultqvist 2011年

1

如果你试试:

curl http://www.google.com

从命令行,然后,如果您获得HTML,则代理正常工作。


0

我还使用了代理,因此必须专门为Synergy和更新管理器设置代理设置(使用Synergy:Configuration-> Preferences-> Network)。没有使用“系统设置”的选项,即使它可以工作,在系统级别更改代理服务器也从未使我能够更新:-(

我对使它起作用的解决方案很感兴趣:-)



0

任何想检查/添加设置到的人:

/ etc /环境

尝试使用:

http_proxy =“ http:// user:password @ proxyserver:port” https_proxy =“ http:// user:password @ proxyserver:port” ftp_proxy =“ http:// user:password @ proxyserver:port”


-1

在系统范围内应用还不够!我认为可能是ISA Server或每个网络查询的突触重置连接,此问题是登录名和密码身份验证存在的问题。也许ISA Server不接受传输无法在HTTP协议上回答的查询,但这不是我的最爱。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.