「apt-get」はプロキシでは機能しません


52

コマンド用

sudo apt-get update

次のエラーが表示されます。

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

VirtualBoxを使用してWindows XPにインストールされたUbuntu 10.10を実行しています。インターネット接続には、認証付きのプロキシサーバーを使用しています。gnome-network-proxyツールを使用してプロキシ設定をシステム全体に設定しようとしました。

formatの変数/etc/environmentによって更新された後、認証データはありませんでした。http_proxyhttp://my_proxy:port/

これをFirefoxで確認しました。ブラウザがログインとパスワードを要求し、すべてが正常に機能していました。残念ながら、apt-getには当てはまりませんでした。ここで説明するようにしようとしまし。残念ながら機能しません。

プロキシがWindowsドメインにあるという事実に何らかの形で関連している可能性がありますか?

私のプロキシ名はhttp-proxyです。「-」は特殊文字ですか?


2
[システム]-> [設定]-> [ネットワークプロキシ]でグローバルネットワークプロキシを使用し、設定をグローバルに適用しましたか?
DemonWareXT

使いやすいGUIツールGrrProxy
Renae Lider

回答:


52

企業ネットワークの場合、管理者から次の形式のプロキシ名が与えられました。

http://[username]:[password]@[proxy-webaddress]:[port]

Windowsネットワークの場合、ユーザー名の形式は次のとおりです。

[domain]\[username]

例えば:

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080

これは次の新しいファイルに追加されました(デフォルトでは存在しません):

gksudo gedit /etc/apt/apt.conf.d/01proxy

次のテキストが追加されました。

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";

匿名プロキシを使用している場合、ログイン資格情報は必要ありません。

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

ファイルを保存してから、すべてが問題ないことを確認します。

sudo apt-get update

後でこれを読む人にとっては、これは訓練されていない目にはハックのように思えますが、企業のプロキシを従わせる非常に簡単な方法です。
macduff

1
これは完全に機能します。以前に/etc/apt/apt.confに不正なAcquire行を設定していない限り。私はそれをしました、そして私がしなければならなかったのは戻ってその行を削除することでした。
ハフマンをスキップ

Ubuntu 12.10では、/ etc / apt / apt.conf.d / 01proxyに加えた変更を/etc/apt/apt.confにコピーしてから機能させる必要がありました。
スティーブンニエジエルスキ

これらの編集を行っても、12.04でこれを機能させることはできませんでしたが、ntlmapsを使用して構成し、apt.confファイルで中間プロキシを指定することで、これを機能させることができました。
monkut

The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(もちろん、プロキシを設定しないと動作しません...)幸いなことにsudoうまく動作します。
TED

13

「ネットワークプロキシ」アプレットに入力されたUSERNAMEとPASSWORDがapt.confファイルに保存されないことがわかりました。ユーザー名とパスワードを手動で/etc/apt/apt.confファイルに追加する必要があります。

「ネットワークプロキシ」アプレットは、ホスト名とポートのみを保存します。

基本的な構文は

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Windowsのユーザー名とパスワードを使用している場合は、次のアドバイスに従ってください。

User = Domain/Username

(Windowsユーザーは使用し/ません\

特殊文字を含むWindowsの強力なパスワードと複雑なパスワードを使用している場合、値にURLエンコードを使用する必要があります。たとえば、パスワードの「@」は「%40」になります。


(windowsユーザーが使用する/しない)だからこそ、私は立ち往生しています:)
-GaiusSensei

9

http:// user:pass @ proxyserver:port /に設定http_proxyしてみてください

編集:
設定http_proxyが機能しない場合は、編集してみてくださいapt.conf
Ubuntu apt.confに断片化され/etc/apt/apt.conf.d/たディレクトリ。
このディレクトリで編集/etc/apt/apt.conf.d/01ubuntu

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

または、Synapticを使用して設定を試してください:[設定]-> [設定]-> [ネットワーク]
そして、[手動プロキシ設定]でプロキシ設定を設定します。


3
/ etc / environment fileですか?
-tommyk

はい、この変数をグローバルに設定します。
カジュアルコーダー

パスワードの一部としてコロンをどのようにエンコードしますか?
k0pernikus

の/ etc /環境は、apt-getので作業されていない(あるいは少なくともそれは再起動が必要;)、はapt.confを変更するとすぐに効果がある
ダニューブセーラー

Network apt-getで「手動プロキシ設定」と「システム全体に適用」の設定を確認できます。
ウィルシェパード14年

4

私はMS ISAプロキシの背後にいて、Cntlm認証プロキシを使用しています。でapt.conf、私は4つのラインを持っています。私はどこかで最後の行が空でなければならないことを読みましたが、私はそれについて確信がありません。それは完全に動作します:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";

3

cntlmには、ネットワークのNTLM認証で動作する適切な設定を見つけるのに役立つ検出オプションがあります。これを試してください。

cntlm -I -M http://test.com

結果をコピーして/etc/cntlm.confに貼り付けます

cntlmを再起動します


'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(これはもちろん、仕事私の代理権が設定されていない場合、しない場合は...)
TED

2
  1. ターミナルを開き、次の行を/etc/apt/apt.confに追加します。

    gksu gedit /etc/apt/apt.conf
    
  2. 次の2行を追加します。

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. 保存して終了。

    apt-get updateとプロキシの背後に動作するはずです、しかし、あなたはまだ何かがあること、機能していないことがわかりますadd-apt-repositoryコマンド。

    プロキシの背後にリポジトリを追加できるようにするには、次のコマンドを入力します。

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    LANG = C add-apt-repositoryを使用して、LucidおよびNattyにリポジトリを追加できるようになりました

    例:

    root @ ubuntu:〜#LANG = C add-apt-repository ppa:motumedia / mplayer-daily

Unixmen経由


2

Ubuntuでapt-get updateまたはinstallを適用する方法は?私はプロキシサーバーの背後にいて、Ubuntuをインストールした後、apt-getコマンドを使用して何も更新またはインストールできませんでした。検索後、aptパッケージが変更されていることがわかりました。/etc/aptディレクトリにapt.confがなくなりました。

この問題を解決するために私がしたことは次のとおりです:

ターミナルとファイルを開きます

sudo -H gedit /etc/bash.bashrc

ファイルの最後に次の2行を追加します。

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

保存して終了すると、Ubuntuでパッケージを更新、アップグレード、またはインストールできるようになります。


提案どおりにエクスポートを追加しました。それでも動作しません。これで、「extras.ubuntu.com:80(91.189.88.33)に接続できませんでした。接続(110:接続がタイムアウトしました)」という別のエラーメッセージが表示されました。<br>奇妙なことは、Firefoxの設定で同じプロキシ設定を入力すると、Webを閲覧できることです。
-tommyk

@tommykはあなたの/etc/apt/sources.listを投稿してここにあなたの質問を更新するかの/etc/apt/sources.listからextras.ubuntu.comを削除し、apt-getの更新を実行しようとすることができます
hhlp

sources.listをubuntu Webページのデフォルトのものに置き換えました。このファイルにリストされているすべてのリポジトリで同じエラーが発生しました。
-tommyk

2

これは私のために働いています!!

(system-settings-> networkなどを介してGUIからプロキシを手動で追加することは機能します)しかし、もし機能しない場合、ターミナルからenv変数をエクスポートします:

export http_proxy=http://<your proxy url>:<proxy port>

httpsの場合:

export https_proxy= <usually the same as the http>

-Eを追加することが最も重要です: 実行するには、sudo apt-get installまたは実行する必要sudo apt-get updateがあります。

sudo -E <command>

「-E」は、ルート(sudo)にユーザー環境変数を使用します。これは、エクスポートしたhttp_proxy / https_proxyに関係します。

それが役に立てば幸い :)


1

BlueCoatプロキシを使用する場合、apt.confファイル形式は次のようにする必要がありました。

Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/";

^ ^ ^ ^ 3番目のプロキシ行の後の空白行。この行は入力しないでください。^ ^ ^ ^


1

Ubuntu 18.04をインストールした後、これと同じ問題が発生しました。私のために働いたのは:

  1. [ネットワーク設定]の[ネットワークプロキシ]画面を開く
  2. [手動]を選択し、httpとhttpsの両方のプロキシ情報を追加します
  3. さらに、[ホストを無視]フィールドを次のように設定します。
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Ubuntuを再起動しました

ポイント3については、上記のエントリを追加するかどうかはわかりませんが、この手順は私にとってはうまくいきます


0
  1. Synapticを起動します(Gnome 2で[システム]-> [管理]-> [Synaptic ]に移動するか、Unityのダッシュで「synaptic」と入力します)。
  2. メニューバーで、[ 設定に続いて、プリファレンスを
  3. [設定]ウィンドウが表示されたら、[ ネットワーク ]タブをクリックします。
  4. [ 手動プロキシ設定 ]ラジオボタンを選択し、プロキシ情報を入力します。
  5. 認証情報を適用するには、[ 認証 ]ボタンをクリックして、ユーザー名とパスワードを入力します。
  6. [OK]をクリックして、[HTTP認証]ウィンドウを閉じます。
  7. [OK]をクリックして[設定]ウィンドウを閉じます。
  8. [リロード]ボタンをクリックして、パッケージリストを更新します。

この設定の変更は、Update Managerにも影響することに注意してください。


0

このワンライナーソリューションは私のために働いた:

sudo env http_proxy=http://<ip>:<port> apt-get update
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.