我在 Ubuntu 中通过 http 代理隧道传输 apt 时遇到了问题。
https://askubuntu.com/questions/23666/apt-get-does-not-work-with-proxy
https://askubuntu.com/questions/158557/setting-proxy-from-terminal
这些问题描述了问题和解决方案。它要求我创建一个文件“apt.conf”并输入以下格式的一行。
http://[username]:[password]@[proxy-webaddress]:[port]
问题是密码中有“@”。
这是我收到的错误。 错误
问题是如何在配置文件中包含密码。
我尝试使用“@”和“/@”,但都出现了错误,虽然不完全相同,但都类似“暂时无法解析 ID 和密码”
这是我写的
Acquire::http::proxy "http://tarun:usa@[email protected]:808/";
我努力了,
Acquire::http::proxy "http://tarun:usa\'@\'[email protected]:808/";
Acquire::http::proxy "http://tarun:usa\@[email protected]:808/";
Acquire::http::proxy "http://tarun:usa/@[email protected]:808/";
Acquire::http::proxy "'http://tarun:usa/@[email protected]:808/'";
Acquire::http::proxy "\'http://tarun:usa/@[email protected]:808/\'";
Acquire::http::proxy "`http://tarun:usa/@[email protected]:808/`";
答案1
我注意到错误信息是,"Could not resolve <address>"
这意味着这<address>
是一个 URL。搜索 URL 会让我找到字符的 URL 编码。
为了将其包含@
在我的地址中,我可以使用 对其进行编码%40
。因此,整个字符串变为。解析时 %40 被解码为 @。效果很好。http://tarun:usa%[email protected]:808
更多内容请点击这里 URL 编码
答案2
http://www.shellscript.sh/escape.html
感谢编辑。你需要逃离整个字符串不仅仅是@字符Acquire::http::proxy "'tarun:usa@9356@http://192.17.2.4:808/'";
- 在双引号内使用单引号