为什么应用系统范围的网络代理设置只会影响超级用户(root)?

为什么应用系统范围的网络代理设置只会影响超级用户(root)?

我最近解决了我的问题如何检查网络代理是否真的被应用? 现在我可以sudo apt-get install application-name轻松使用 - 但问题是普通用户(不是超级用户)看不到代理。

例如,这些命令有不同的输出:

wget http://whatismyip.com

sudo wget http://whatismyip.com

它表明第一个命令不使用代理,而第二个命令明确指出:

连接到本地主机|127.0.0.1|:8080...已连接。

奇怪的是,当我检查http://whatismyip.com使用 Firefox 时,它显示代理 IP 而不是我的真实 IP,这意味着 Firefox 看到的是代理。

为什么不能获得看到代理了吗?

答案1

您是否检查过在执行Apply System-wide...这些操作之后会发生以下事情:

  1. 文件 /etc/environment 包含您指定的代理设置的条目。
  2. 启动任何终端程序关闭Network proxy对话框是否在其环境中设置了代理变量?

    set | grep -i proxy
    

    应该给你这样的条目

    https_proxy = http://proxy.yoyodyne.com:18023/
    http_proxy = http://proxy.yoyodyne.com:18023/
    ftp_proxy = http://proxy.yoyodyne.com:18023/
    

wget 按照手册会使用这些代理。我在办公室的笔记本电脑上使用它。

Network Proxy您确定您已将 wget 命令提供给对话框关闭后启动的终端进程吗?

答案2

我认为这实际上可能是错误 232469,其中提出了一些修复和解决方法。其中之一似乎是以/etc/wgetrcroot 身份进行编辑,然后向下滚动到您看到以下内容的位置:

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/

取消注释(删除 #)并设置要使用的代理。保存并关闭。这应该为所有用户设置全局 wget 特定设置,并且应该是一个适当的解决方法,直到错误得到解决。

您还可以添加这些设置~/.wgetrc,它将根据每个用户生效。

相关内容