apt.confのSOCKSプロキシの構文


23

SOCKSプロキシ設定を/etc/apt/apt.confに追加したい。その構文は何ですか?httpおよびftp構文と同じですか?

ありがとう。

回答:


31

可能な解決策はtsocks、ソックスプロキシを介してネットワークトラフィックをリダイレクトできるアプリケーションを使用することです。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
$

その使用を簡素化および自動化するために、多くのオプションを考えることができます。
先頭のドットを忘れないでください、マンページはこの詳細deatailsを持っています。

編集:それを使用するための短い方法:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade

11
tsocksはデフォルトではインストールされていないようなので、を実行する必要がありますsudo tsocks apt-get install tsocks
ハハハハハハ

1
curlを使用してダウンロードしtsocks、インストールしてから:)
neutrinus

3
また:apt 1.3〜rc1(Debianバージョン、正確にはどのUbuntuバージョンかわからないが、私の推測はZestyまでではない)では、を使用できますAcquire::http::Proxy "socks5h://hostname:port/"anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
derobert

1
まあ...それは面白いです。apt-getを機能させるには、...が必要ですapt-get something
エクイダモイド

2
@derobert行を少し修正:Acquire::socks::Proxy "socks5h://hostname:port/";トリックを行います。Httpはそうではありませ -Torで試してみると、「TorはHTTPプロキシではありません」という標準的な応答が表示されるため、http代わりにsocks-が機能します。
アレクセイ・ヴェズニン

17
Acquire::http::proxy "socks5h://server:port";

これはUbuntu 18.04で動作します。manページにあるように、aptではsocks5ではなくsocks5hがサポートされています。これは、DNS解決機能を備えたsocks5プロキシを意味します。


1
これは正しいことであり、実際にはUbuntu 18.04で機能するようです。Acquire :: https :: proxyAcquire :: ftp :: proxyも(同じ値で)含めたい場合があります。
Hamy

1
プロキシルールAcquire::https::proxy "socks5h://server:port";apt.conf.dファイルに追加する(など/etc/apt/apt.conf.d/12proxy)のは問題ありません。特に必要がない限り、httpsに固執することをお勧めします
codegenki

また、認証を必要とするプロキシサーバーの場合、この行はとして変更されAcquire::http::proxy "socks5h://user:pass@server:port";ます。上記のルールは、Ubuntu 18.04では問題なく機能します。ここsocks5hでは、プロキシサーバーでDNS解決を強制します。
codegenki

これがUbuntu 16.04で機能するかどうかは誰でも知っていますか?
becko

14.04では動作しません
razieh babaee

8

次の設定行を使用するとうまくいきます:

Acquire::socks::proxy "socks5://server:port";

apt.confLinuxのアップグレード時の問題を回避し、問題を回避するために、新しいファイル(/etc/apt/apt.conf.d/12proxy)を作成し、構成ファイルを追加しました。


フォラーの開始番号は何ですか
クリス・ルーフ

それは単なるスクリプトの実行順序です
ビットマン

これは間違っています。これは機能しません。
dedunumax

@dedunumaxに失敗したのは何ですか?エラーがありますか?どんな手掛かり?
ビットマン

1
Acquire :: http :: proxyである必要があり、プロキシ側のDNS解決のためにsocks5 h
ZAB

4

Ubuntu Xenialのapt.confマニュアルのAcquire :: socks :: proxyには何も見つかりませんでした。これを修正するには、Polipoなどのアップストリームソックスプロキシをサポートするローカルhttpプロキシを実行します。次のように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/";

3

または、touは/etc/apt/apt.confに次のように入力できます。

Acquire::socks::proxy "socks://user:pass@host:port/";

2
これはUbuntu 12.04
Shnatsel

13.10。で動作します。
isaaclw 14年

4
これは間違った構文であると確信しています。これは、「socks://からsocks:// user:pass @ host:port /で始まるすべてのURLをプロキシする」ことを意味します。本当に、それはこのようになりますAcquire::http::proxy "socks://user:pass@host:port/";
ハンス・クリストフ・シュタイナー

@ Hans-ChristophSteiner:これは、指定されたホストとポートへの接続を確立しますが、接続はsocksプロトコルを使用しません。HTTPプロキシプロトコルのように見えますが、実際のHTTPプロキシで確認しませんでした。
セスロバートソン

この時点で、Acquire::socksで始まるURLのプロキシを設定するためのものであると確信していますsocks://。だから、あなたがインターネットへのアクセスにプロキシを必要としない、と手段aptのための任意のプロキシを使用していないftp://http://またはhttps://...は apt唯一のHTTPプロキシ、すなわちをサポートしていますAcquire::http::proxy "http://localhost:8118
ハンスクリストフシュタイナー

0

Debianでは、マンページapt-transport-http(1)を読んで、サポートされているURIスキームを探すことができます。前に答えたように、

Acquire::http::proxy "socks5h://server:port";

/etc/apt/apt.conf.d/12proxy

一般的なAPT-configの詳細と、マンページの最後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プロキシを使用する他のシステムを有効にするために、すべてのインターフェイス。これは、セキュリティリスクまたは(企業の)ポリシー違反の可能性があります。何をしているかを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.