Ubuntuser Asked: 2011-04-16 02:27:57 +0800 CST2011-04-16 02:27:57 +0800 CST 2011-04-16 02:27:57 +0800 CST apt.conf 中 SOCKS 代理的语法 772 我想将 SOCKS 代理设置添加到 /etc/apt/apt.conf。它的语法是什么?它与http和ftp语法相同吗? 谢谢。 apt 6 个回答 Voted 苏永刚 2019-02-11T18:49:41+08:002019-02-11T18:49:41+08:00 Acquire::http::proxy "socks5h://server:port"; 这适用于我在 Ubuntu 18.04 上。正如手册页所说,apt支持socks5h,而不是socks5,这意味着socks5代理具有DNS解析能力。 Best Answer enzotib 2011-04-16T03:14:48+08:002011-04-16T03:14:48+08:00 一个可能的解决方案是使用tsocks一个可以通过 socks 代理重定向网络流量的应用程序。安装tsocks包,修改/etc/tsocks.conf设置你的socks代理的地址和端口号,然后运行: $ sudo -s # tsocks apt-get update # tsocks apt-get dist-upgrade # exit $ 或者 $ sudo -s # . tsocks -on # apt-get update # apt-get dist-upgrade # . tsocks -off # not really necessary, given the exit # exit $ 您可以考虑多种选择,以简化和自动化其使用。 不要忘记前导点,手册页对此有更多详细信息。 编辑:使用它的更短的方法: $ sudo tsocks apt-get update $ sudo tsocks apt-get dist-upgrade Bit-Man 2014-11-16T09:20:46+08:002014-11-16T09:20:46+08:00 使用下一个配置行对我有用: Acquire::socks::proxy "socks5://server:port"; 为了保持apt.conf清洁并避免在 Linux 升级时出现问题,我创建了一个新文件 ( /etc/apt/apt.conf.d/12proxy) 并将配置文件添加到其中。 Mos 2016-10-23T22:19:22+08:002016-10-23T22:19:22+08:00 我在 Ubuntu Xenial 的 apt.conf 手册中的Acquire::socks::proxy上找不到任何内容。您可以通过运行支持上游 socks 代理的本地 http 代理来解决此问题,例如 Polipo。您需要按如下方式配置 Polipo: proxyAddress = "::1" proxyPort = 8118 socksParentProxy = "sockshost:socksport" socksProxyType = socks5 然后在 apt.conf 文件中设置 http 代理: Acquire::http::proxy "http://127.0.0.1:8118/"; Acquire::https::proxy "https://127.0.0.1:8118/"; mrkbbk 2012-12-02T04:34:02+08:002012-12-02T04:34:02+08:00 或者你可以在你的 /etc/apt/apt.conf 中加入如下内容: Acquire::socks::proxy "socks://user:pass@host:port/"; AdamKalisz 2019-07-11T13:02:07+08:002019-07-11T13:02:07+08:00 在 Debian 中,您可以阅读手册页apt-transport-http(1)并查找支持的 URI 方案。如前所述,把 Acquire::http::proxy "socks5h://server:port"; 在 /etc/apt/apt.conf.d/12proxy 您可以阅读有关 APT 配置的更多信息,并阅读手册页末尾提到apt.conf(5)的示例。/usr/share/doc/apt/examples/configure-index.gz 这可以结合ssh -D <LOCAL PORT> <USER>@<HOST>创建一个到不同系统的 SOCKS 代理,这样 apt 就可以使用代理,就好像一切都起源于<HOST>. 如果您使用ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>或ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(对于 IPv6)使其他系统能够在所有接口上使用 SOCKS 代理。这可能是安全风险或违反(公司)政策。确保你知道你在做什么。
这适用于我在 Ubuntu 18.04 上。正如手册页所说,apt支持socks5h,而不是socks5,这意味着socks5代理具有DNS解析能力。
一个可能的解决方案是使用
tsocks
一个可以通过 socks 代理重定向网络流量的应用程序。安装tsocks
包,修改/etc/tsocks.conf
设置你的socks代理的地址和端口号,然后运行:或者
您可以考虑多种选择,以简化和自动化其使用。
不要忘记前导点,手册页对此有更多详细信息。
编辑:使用它的更短的方法:
使用下一个配置行对我有用:
为了保持
apt.conf
清洁并避免在 Linux 升级时出现问题,我创建了一个新文件 (/etc/apt/apt.conf.d/12proxy
) 并将配置文件添加到其中。我在 Ubuntu Xenial 的 apt.conf 手册中的Acquire::socks::proxy上找不到任何内容。您可以通过运行支持上游 socks 代理的本地 http 代理来解决此问题,例如 Polipo。您需要按如下方式配置 Polipo:
然后在 apt.conf 文件中设置 http 代理:
或者你可以在你的 /etc/apt/apt.conf 中加入如下内容:
在 Debian 中,您可以阅读手册页
apt-transport-http(1)
并查找支持的 URI 方案。如前所述,把在
您可以阅读有关 APT 配置的更多信息,并阅读手册页末尾提到
apt.conf(5)
的示例。/usr/share/doc/apt/examples/configure-index.gz
这可以结合
ssh -D <LOCAL PORT> <USER>@<HOST>
创建一个到不同系统的 SOCKS 代理,这样 apt 就可以使用代理,就好像一切都起源于<HOST>
.如果您使用
ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>
或ssh -D [::]:<LOCAL PORT> <USER>@<HOST>
(对于 IPv6)使其他系统能够在所有接口上使用 SOCKS 代理。这可能是安全风险或违反(公司)政策。确保你知道你在做什么。