已经使用网络代理的系统设置 UI 和环境变量http_proxy
、https_proxy
和no_proxy
(以及大写版本)配置了代理。
环境变量已在其中一个/etc/profile.d/proxy.sh
或/etc/environment
另一个中持久化(只能选择一个,不能同时选择两个,并且在更改后进行电源循环以确保使用设置脚本)。
还通过覆盖命令行上的环境变量进行了实验。
已尝试的方法概括如下:
# doesn't work
curl 192.168.0.1
# still doesn't work
export NO_PROXY=192.168.0.0/16
export no_proxy=$NO_PROXY
curl 192.168.0.1
# HTTP port is accessible
nc -zvw 1 192.16.0.1 80
# works!
curl --noproxy '*' 192.168.0.1
# works!
unset HTTPS_PROXY https_proxy HTTP_PROXY http_proxy NO_PROXY no_proxy
curl 192.168.0.1
当我在上面提到“不起作用”时,代理会做出回复,而不是 HTTP 服务器。
此外,这不仅限于 curl。通过 UI 设置的代理设置由 Firefox 使用,但只有在 Firefox 自己的设置中将 IP 设置在“无代理”列表中才能访问 192.168.0.1 服务器。
因此,感觉 22.04 不像旧版本那样使用 NO_PROXY 和 no_proxy,对吗?
答案1
代理变量是某种噩梦。
no_proxy
:此变量应包含以逗号分隔的域扩展列表,代理不应用于
所以尝试
printf -v no_proxy '%s,' 192.168.{1..255}.{1..255};
export no_proxy="${no_proxy%,}";
答案2
对于 Firefox,我发现卸载 snap 版本并通过 apt 安装会对 http_proxy 环境变量产生影响