apt-get落后代理。用户名和密码中的特殊字符

问题描述 投票:4回答:2

我想设置apt-get在我的ubuntu盒子上使用代理。我已成功配置synaptic以使用代理,因此我可以安装软件包,但我希望能够使用命令行。

我的工作代理需要用户名和密码,两者都有特殊字符。

在我的.bashrc我有

export http_proxy="http://user@company:P@[email protected]:80/"

但是,这不起作用。

我也试过逃避特殊字符,但这似乎也不起作用:

export http_proxy="http://user\@company:P\@\$\[email protected]:80/"
linux ubuntu-10.04 apt-get
2个回答
6
投票

似乎是两件事的组合。我需要为特殊字符使用转义码,我需要向/etc/apt/apt.conf添加条目。 (据说,导出_proxy环境变量应该使apt-get工作,但我没有那么幸运。)

/etc/apt/apt.conf

APT::Get::AllowUnauthenticated 1;
Acquire::http::proxy "http://user%40company:P%40%24%[email protected]:80/";
Acquire::ftp::proxy "ftp://user%40company:P%40%24%[email protected]:80/";
Acquire::https::proxy "https://user%40company:P%40%24%[email protected]:80/";

.bashrc

export http_proxy="http://user%40company:P%40%24%[email protected]:80/";
export ftp_proxy="ftp://user%40company:P%40%24%[email protected]:80/";
export https_proxy="https://user%40company:P%40%24%[email protected]:80/";

1
投票

更简单可靠!

一般语法:

sudo {http,https,ftp}_proxy=http://<username>:<password>@<proxy_url/_proxyip>:<port>/

wget --timeout=5 --no-check-certificate http://<website_url>

例:

[root@localhost ~]# sudo {http,https,ftp}_proxy=http://username:[email protected]:6050/

wget --timeout=5 --no-check-certificate http://google.com

{http,https,ftp} _proxy - > http,https,ftp网址。用逗号分隔。

--timeout = 5 - >连接以秒为单位保持活动状态。

-no-check-certificate - >忽略SSL /证书验证。

--spider - >如果要在不下载文件的情况下测试连接。

笔记:

在线转换器:

用等效的十六进制unicode替换特殊字符。有关unicodes的列表,请参阅网站https://unicode-table.com(或)http://unicodelookup.com

使用Python的本地转换器:

参考:将密码“p @ s#w:E”转换为unicode如下,

@ = %40
$ = %24
# = %23
: = %3A
p@s#w:E = p%40s%23w%3AE

输入:

[root@localhost ~]# python -c "import sys, urllib as enc; print enc.quote_plus(sys.argv[1])" "p@s#w:E"

输出:

p%40s%23w%3AE
© www.soinside.com 2019 - 2024. All rights reserved.