(相关且可能更简单的问题需要解决:MSCHAPv2 的代理身份验证)
摘要:我使用的是 Ubuntu 18,代理可以与网络浏览器配合使用,但不能与终端应用程序(wget、curl 或apt update)配合使用。有什么线索吗?
似乎问题是解释代理的“PAC 文件” ......是吗?如何翻译成Linux的代理变量?
...或者问题很简单:我的代理配置(请参阅下面的分步过程)错误?
细节:
通过终端env | grep -i proxy我们得到
https_proxy=http://user:pass@pac._ProxyDomain_/proxy.pac:8080
http_proxy=http://user:pass@pac._ProxyDomain_/proxy.pac:8080
no_proxy=localhost,127.0.0.0/8,::1
NO_PROXY=localhost,127.0.0.0/8,::1
ftp_proxy=http://user:pass@pac._ProxyDomain_/proxy.pac:8080
Run Code Online (Sandbox Code Playgroud)
浏览器 (Firefox) 对于任何 URL 都可以正常工作,但是:
wget http://google.com说
正在解析 pac._ProxyDomain_ (pac._ProxyDomain_)...等.etc.0.26
连接到 pac._ProxyDomain_ (pac._ProxyDomain_)|etc.etc.0.26|:80... 已连接。
代理请求已发送,正在等待响应... 403 Forbidden 2019-07-25 12:52:19 ERROR 403:禁止。
curl http://google.com说
“curl:(5)无法解析代理:pac._ProxyDomain_/proxy.pac”
(这里最近的新闻:清除导出的代理会更改一些内容,并且不会再次进行测试......)
我使用的代理配置程序(有一些即插即用的 PAC 文件生成器?我需要 PAC 文件吗?)
所有机器都在运行,具有直接的非代理互联网连接...机器通过代理连接到 LAN。
在我的~/.profile. URL 定义采用以下形式http_proxy="http://user:pwd@etc"
(假设这是正确的,因为之前使用user:pwd@http://pac.domain/proxy.pac语法进行了测试,并且 Firefox 提示了代理登录)
(如果当前代理密码使用#字符,需要更改吗?)
~root/.profile在我的.txt文件中添加“export *_proxy”行
(需要它?)
(可以重新启动并使用 进行测试echo $http_proxy)
重新启动并通过 Firefox 导航,无需登录,直接(很好用!)。测试env | grep -i proxy,它显示了预期的所有正确值。
测试wget并curl作为本报告的开始,代理错误。
测试sudo apt update,bug。
...再一步之后,假设apt不存在文件,则创建sudo nano /etc/apt/apt.conf.d/80proxy 并添加 3 行,Acquire::*::proxy "value"; 值为http://user:pass@pac._ProxyDomain_/proxy.pac:8080。其中 pass 是etc%23etcurl 编码的。
(这是一个问题,但现在忽略它以专注于更相关的问题)
在系统中进行(代理)电缆连接和代理配置之后。(参见上面的“使用的配置程序”部分)。具有特殊字符的代理密码。
curl http://google.com说“curl:(5)无法解析代理...”
当将所有.profile内容更改%23为更改#错误时wget,但curl不是。Wget 更改为http://user:pass@pac._ProxyDomain_/proxy.pac:8080:端口号错误”PS:当用于$系统密码时(内部export http_proxy 命令中的某些内容或使用http_proxy其与变量混淆)。
与上面的 context-1.1 相同,但密码没有特殊字符。良好且干净的代理密码。
curl http://google.com说“curl:(5)无法解析代理...”在(代理)电缆连接之后,系统中没有代理配置(但在自动弹出表单登录后确认连接在浏览器上正常工作)。
curl -x 192.168.0.1:8080 http://google.com “curl:(7)连接失败...”
curl --verbose -x "http://user:pass@pac._proxyDomain_/proxy.pac" http://google.com说“curl:(5)无法解析代理...”
正如@Roadowl 建议检查的那样:
~/.netrc且不~root/.netrc存在more /etc/wgetrc存在,但所有注释,除了 passive_ftp = on