Ubuntu 18,代理无法在终端上运行,但可以在浏览器上运行

Pet*_*uss 6 linux proxy

(相关且可能更简单的问题需要解决:MSCHAPv2 的代理身份验证

摘要:我使用的是 Ubuntu 18,代理可以与网络浏览器配合使用,但不能与终端应用程序wgetcurlapt 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 文件吗?)

使用的配置过程

  1. 所有机器都在运行,具有直接的非代理互联网连接...机器通过代理连接到 LAN。

  2. 在我的~/.profile. URL 定义采用以下形式http_proxy="http://user:pwd@etc"
    (假设这是正确的,因为之前使用user:pwd@http://pac.domain/proxy.pac语法进行了测试,并且 Firefox 提示了代理登录)
    (如果当前代理密码使用#字符,需要更改吗?)

  3. ~root/.profile在我的.txt文件中添加“export *_proxy”行
    (需要它?)

  4. (可以重新启动并使用 进行测试echo $http_proxy

  5. visudo此处描述的过程

  6. 重新启动并通过 Firefox 导航,无需登录,直接(很好用!)。测试env | grep -i proxy,它显示了预期的所有正确值。

  7. 测试wgetcurl作为本报告的开始,代理错误

  8. 测试sudo apt update,bug。

  9. ...再一步之后,假设apt不存在文件,则创建sudo nano /etc/apt/apt.conf.d/80proxy 并添加 3 行,Acquire::*::proxy "value"; 值为http://user:pass@pac._ProxyDomain_/proxy.pac:8080。其中 pass 是etc%23etcurl 编码的。


执行的测试摘要

上下文-1.1

(这是一个问题,但现在忽略它以专注于更相关的问题)

在系统中进行(代理)电缆连接和代理配置之后。(参见上面的“使用的配置程序”部分)。具有特殊字符的代理密码。

  1. curl http://google.com“curl:(5)无法解析代理...” 当将所有.profile内容更改%23为更改#错误时wget,但curl不是。Wget 更改为
    “解析代理 URL 时出错http://user:pass@pac._ProxyDomain_/proxy.pac:8080:端口号错误”

PS:当用于$系统密码时(内部export http_proxy 命令中的某些内容或使用http_proxy其与变量混淆)。

上下文-1.2

与上面的 context-1.1 相同,但密码没有特殊字符。良好且干净的代理密码。

  1. curl http://google.com“curl:(5)无法解析代理...”

上下文2

在(代理)电缆连接之后,系统中没有代理配置(但在自动弹出表单登录后确认连接在浏览器上正常工作)。

  1. curl -x 192.168.0.1:8080 http://google.com “curl:(7)连接失败...”

  2. 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