APTのプロキシを構成しますか?


72

プロキシを構成する必要があります。apt.confファイルがなかったetc/apt/ので、を使用して作成しましたnano

しかし、私はそこに何を書く必要があるのか​​理解できません。私はhttp_proxy = http://lgn:pwd@192.168.1.254:8080/そこに書い てから再開しましたnetworking。しかし、私がしようとするとapt-get update-それは動作しません。

実際、apt.confファイルに書き込むポートとIPがわかりません(192.168.1.254IPと8080ポートの例があったので、使用することにしました)。


Ubuntuの訪問では、企業の代理で仕事を得るためのプロキシ設定の変更がありgithub.com/navinas33/docker_ubuntu.git ...それが動作する
などナビーン

回答:


103

プロキシを使用するには、プロキシサーバーが必要です。IPとポートは、このプロキシサーバーからのものでなければなりません。ログインとpwdは、プロキシサーバーのユーザーとパスワードである必要があります(プロキシにログインが必要な場合)。

help.ubuntu.comサイトから:

APT構成ファイル方式

この方法では、/ etc / apt /ディレクトリにあるapt.confファイルを使用します。この方法は、apt-getのみ(他のアプリケーションではなく)が永続的にhttp-proxyを使用する場合に便利です。

一部のインストールでは、apt-confファイルがセットアップされません。選択したエディターを使用して、apt-confファイルを編集します(まだ作成していない場合は新しいファイルを作成します)。

sudo nano /etc/apt/apt.conf

この行を/etc/apt/apt.confファイルに追加します(プロキシアドレスとプロキシポートの詳細を置き換えます)。

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

apt.confファイルを保存します。

プロキシにログイン/パスワードが必要な場合は、次のものに置き換えてください。

"http://yourproxyaddress:proxyport";

で:

"http://username:password@yourproxyaddress:proxyport";

プロキシサーバーのユーザー名とパスワードを使用します。


6
/etc/apt/apt.conf.d/システムの基本設定ファイルを編集する必要がないように、別のローカルファイルを追加することをお勧めします。そうすれば、後続のパッケージバージョンで更新された場合、ローカルの変更を手作業でマージする必要はありません。
トリプリー

ユーザーディレクトリにプロキシ設定ファイルはありますか?
becko

この回答には更新が必要です:gksudoは廃止されました。sudo -Hgeditなどを使用する場合は、gksudoの代わりに、他の非GUIエディターを提案することを検討してください。

24

これは、apt configとともにより一般的な答えです。

プロキシ設定を構成する場所がたくさんあるため、最初は混乱する可能性があります。いくつかのことを要約し、いくつかの良い習慣を提案しましょう。

コンソールプログラム用

例:wget、git、およびインターネットに接続するほぼすべてのコンソールアプリケーション。

何らかの理由でコマンドを実行するたびにプロキシを構成する場合は次のコマンドを使用して環境変数設定します。

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

それ以外の場合、すべてのユーザーに対して同じ設定を毎回使用する場合は、これらを使用します。

bashrcで構成する

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

構成する /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

GUIを使用して構成する

ネットワーク設定を開き、システム全体のネットワークプロキシを設定します。

ネットワーク->ネットワークプロキシ->設定->システム全体に適用。

ただし、プロキシの認証がある場合、これは役に立たない可能性があります。

適切な。

ちなみにaptは環境変数に従わないため、aptに対して追加の作業を行う必要があります。

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

この範囲外のすべての場合、アプリケーション自体でプロキシ設定を構成するオプションが必要です。そうでない場合はごめんなさい;)


2
/ etc / environmentの設定は非常に重要です。なぜなら、ユーザーのhttp_proxy変数を設定するだけでsudoモードに移行すると(「sudo apt-get update」などの場合)、端末は通常現在の環境を保持しないからです。 vars; 設定をテストすることは非常に重要です:sudo echo $ http_proxy
belun

HTTP_PROXY(大文字の場合)はその変数の標準名のように見えますが、多くのプログラムは小文字のバージョンにフォールバックします。https_proxy(小文字に注意してください)はそのための正しい大文字表記ですが、/etc/environment上記のように単独で使用することはありません。(これsはタイプミスだと思います。)
カートJ.サンプソン

APTがプロキシの追加設定を必要とする理由は何ですか?なぜ/ etc / environmentに従っていないのですか?
ロレノ

22

次のようなものが機能するはずです。

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";

使用するポートとIPに違いはありますか?
lapots

ええ、もちろん、使用したいプロキシの正しい詳細を入力する必要があります。
デニスカースメーカー

er ... ip-ルーターのIPですか?私は例から使用したこのIPを意味しますが、すべてのルーターの設定はIPを使用してブラウザで設定します192.168.1.1。.1を使用する必要がありますか?ログインとパスワードは、ubuntuのルートまたはルーターのものである必要がありますか?
lapots

2
何をしているのか知っていますか?プロキシの詳細がわからない場合、プロキシを使用する必要があることをどのように確認しますか?
デニスカースメーカー

5
それから先生に聞いてください。これは「宿題を私のために」するサイトではありません。
デニスカースメーカー

5

またsudo -E、でコマンドを実行して環境設定を取得することもできます。更新、add-apt-repository、およびインストールを試みると、うまくいくようです。例:

sudo -E add-apt-repository ppa:xxxxx

@David Foersterによると、これはシェルを使用した手動操作でのみ機能しますが、ユーザー操作なしでAptを呼び出す自動タスクおよびサービスでは機能しません。


ただし、ユーザーの操作なしでAptを呼び出す自動化されたタスクとサービスには役立ちません。
デビッドフォースター

お知らせいただきありがとうございます。返信にコメントを追加します。
フランク秋

2

プロキシの背後でaptを使用する必要がある場合、おそらく他のすべてのものもプロキシ設定が必要です。プロキシ設定を1か所で管理したいのですが、それは環境変数になります。

そのため/etc/profiles.d/99-proxy.shに、必要なプロキシ設定を含むを作成します(説明したlarentなど):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

そうすれば、そのマシン上のすべてのユーザーがプロキシにアクセスできます。(忘れないでくださいchmod a+x

ユーザーとしてaptまたはapt-getを使用すると、そのユーザーはsudoを使用できます。前述のFrank Qiuのように、sudoは環境変数を渡しません。そのために追加できます

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

(例)

/etc/sudoers.d/00-environment 

または直接に

/etc/sudoers

ファイル。そうすれば、プロキシ設定を1か所で管理するだけで済みます。


0

元の質問は間違った方向にある可能性があります。Linuxでプロキシサーバーをセットアップしたいと思いますか?

これは、Linux環境の既存のプロキシを使用する場合とはまったく異なります。

最初の質問であれば、サードパーティのサービスを使用してLinuxでプロキシサーバーを構成します。例は、イカです。

squidをインストールする簡単なコマンド:

$ sudo apt-get install squid3

次に、構成を編集して、ローカルネット(この場合は自分のマシン)を許可します。$ sudo vi /etc/squid3/squid.conf

次の行を追加/編集します。

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

LinuxマシンのIPが192.168.1 / 24ブロックにあると仮定します。


おそらくこの質問のほとんどの読者は既にsquidをインストールしています;)、http[s]_proxyENV変数も設定しているのに、なぜAPTがまだ機能しないのか疑問に思います。ただし、マシン以外のすべてからHTTP 403を取得している場合は、コメントされていないsquid単語の出現をすべてもう一度確認してくださいdeny。(特にとhttp_access同じ行に。
トマシュGandor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.