Answers:
首先,请确保在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软件中心将使用该文件)。
请按照以下步骤操作:
创建/etc/apt/apt.conf.d/40proxy
gksudo gedit /etc/apt/apt.conf.d/40proxy
将以下内容放入其中-修改内容以适合您的情况。
Acquire::http::Proxy "http://proxy.site.com:8080";
如果您http://username:password@proxy.site.com:8080
有用户名和密码,则可以在代理url中进行编码(例如),也可以使用ntlmaps之类的控件进行更好的控制。
在这里可以找到更多信息。
System -> Preferences -> Network Proxy
,Apply System-wide...
然后说以root用户身份运行的命令看不到此设置?(意思sudo wget whatismyip.com
是不返回代理的IP地址?)
Direct connection to Internet
在Network Proxy
对话框上进行选择可能会消除这种情况。我的系统也可能有问题,但不确定。
上面有很多很好的答案,如果您遇到问题(这意味着您的问题),将对您有所帮助。但是,这是对以下狭义问题的答案:检查是否已应用网络代理设置:
方法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
如其他人所述,请确保将浏览器和其他应用设置为“使用系统代理设置”。
要临时设置代理,您可以启动终端并输入
export http_proxy="http://yourproxy:yourport"
然后启动程序,例如用于软件包管理的Synaptic。控制台可能会为您提供有用的输出,以解决问题。
http_proxy="http://yourproxy:yourport" synaptic
单击“应用系统范围...”,并检查所有Internet应用程序都已设置为使用系统代理。仅此而已。无需篡改配置文件和启动脚本。
set
。然后正如您所预料的那样,apt-get和更新管理器仍然存在问题,并且通过创建40proxy
解决了问题。唯一剩下的问题只有root才能看到代理。例如wget whatismyip.com
,普通用户和root具有不同的输出。