我的台式机上运行的是 CentOS 6.5。我已Network Proxy
使用 下提供的网络代理应用程序设置了Preferences
。我还设置了以下例外:localhost、127.0.0.0/8、172.16.0.0/12、192.168.0.0./16
但是每当我使用 wget(我使用 wget 测试代理设置)时,wget 都会尝试连接到私有地址的代理,但wget localhost
工作正常并且不使用代理。
我还删除了所有代理设置并在 shell 中设置了代理:
export http_proxy="<proxy_url>:<port>"
export https_proxy="<proxy_url>:<port>"
export no_proxy="localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0./16"
当我使用命令时它起作用wget <external_url>
,wget localhost
但是当我使用命令时它失败wget <private address from the $no_proxy variable>
。
我也尝试在 Ubuntu 14.04 中设置变量,但遇到了同样的问题。
编辑:我发现 shell 忽略了 CIDR 表示法。如果我需要不使用代理浏览 127.0.0.1,那么我需要在no_proxy
变量中输入 127.0.0.1,而不是 127.0.0.0/8
答案1
您在其中一个范围内有一个多余的点:
export no_proxy="localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
编辑:
搜索后,似乎 no_proxy 不适用于网络,只适用于域.sample.com
或确切 IP 192.168.1.2
,因此您要么添加本地域,要么添加网络拥有的所有 IP,或者使用如下标志wget --no-proxy
答案2
如果我们需要从代理设置中排除 192.168.1.0/24,我们可以设置环境变量 no_proxy,如下所示:
export no_proxy=localhost,.localdomain
export no_proxy=${no_proxy},$(echo 192.168.1.{1..255} | sed 's/ /,/g')