このように「Httpプロキシ」経由で「apt-get」を使用する方法は?


20

次のapt-getように、プロキシを使用するネットワークでコマンドを使用しようとしています:

ポート80で10.114.7.7をHttpプロキシとして使用し、その後、認証ウィンドウが表示され、ユーザー名とパスワードを要求します。

ユーザー名/ドメインは次のとおりです:username@urmia.ac.ir

http_proxy=http://User:Pass@Proxyserver:Portこの状況でどのように使用できますか?また、プロキシサーバーとして10.114.7.7とurmia.ac.irの両方を試しましたが、結果はありません!

回答:


35

プロキシ経由でapt-getを使用するには、/etc/apt/apt.conf.d/呼び出されたプロキシまたは認識できるファイルを作成するか、(存在しない場合)makeし/etc/apt/apt.confて次の行を挿入します。

Acquire::http::Proxy "http://username:password@proxy.server:port/";

ユーザー名とパスワードをログイン情報に置き換え、proxy.server:portを正しいアドレス(この場合は10.114.7.7:80)に置き換えるだけで、行は次のようになります。

Acquire::http::Proxy "http://username:password@10.114.7.7:80";

@ユーザー名に記号を使用する必要がある場合は、バックスラッシュ(username@urmia.ac.ir)でエスケープする必要があります

バックラッシュを使って文字をエスケープすること(例えばない仕事をしている間\@exportwget)、特殊文字をURLエンコードでエスケープすることができます。たとえば、にusername:my@pass@server.com:portなりusername:my%40pass@server.com:portます。詳細については、このURLエンコード文字のリストを参照してください。


/ etc / apt内にプロキシエントリを追加するための提案されたソリューションは私にとってはうまくいきましたが、プロキシサーバーが資格情報をキャッシュする場合、プロキシサーバーを別のプロセスで認証するだけで構成ファイルに資格情報を埋め込むことを避けることができます(たとえば、WindowsのWebブラウザ)、bashシェルでaptコマンドを実行する前に。これにより、/ etc / apt内のプロキシエントリを「username:password @ server:port」ではなく「server:port」として指定することができました。
ピーターサンザ

6

または、次のものを /etc/apt/apt.conf

Acquire::http::Proxy "http://proxy.server.port:8080";

8080はポート番号であり、標準だと思います。

引用符または末尾のセミコロンを忘れないでください。


4

これで問題が解決するはずです。

export http_proxy=http://username:password@10.114.7.7:80/

EXPORT HTTP_proxy=http://username:password@10.114.7.7:80/Bashで実行すると、結果はになりEXPORT: command not foundます。
デビッドフォースター

小文字でエクスポートとhttpの両方。Bashでは大文字と小文字が区別されます。それ以外は動作するはずです。少なくとも2年間は私のために働いています。
-s3lph

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