Windows XP ICSを使用している場合、apt-get更新が「ヘッダーを待機しています」で止まる


13

予備のPCにMaverickサーバーをセットアップしています。インストールは正常に完了し、システムがシェルで起動します。ただし、を実行しようとするとapt-get update、aptがほぼすべてのエントリでハングし 99% [Waiting for headers]、メッセージが96 b/s右端に表示されることがあります 。それが主張する実際の割合も異なります。

オプションを使用して、潜在的な解決策たオンライン周りの検索Acquire::http::Pipeline-Depth="0"これは多少問題を軽減し、それは上記と同じメッセージを持つ他のすべてのエントリに失速すなわち。

待つと(アップデート全体に約4時間かかります)、PCからサーバーにpingできるにもかかわらず、ヒットのかなりの部分が「接続できません」または同様のメッセージを示すため、アップデートは失敗します。いいよ

この問題は使用したミラーとは無関係です。何十個のミラーを試してみましたが成功しませんでしmainた。sources.list のエントリ以外のすべてをコメントアウトしようとしましたが、それでも更新は拒否されます。

pingとwget(aptは更新が正常に実行されるまでlynxをインストールできません)ができるので、ネットワーク接続は問題ありません。また、運のないディストリビューションを再インストールしました。

セットアップに関する奇妙なことは、PCがICSが適切に構成されたWindowsラップトップを介してインターネットに接続していることですが、前述したように、ネットワーク接続は問題ありません。


あなたのターミナルで以下のコマンドを実行してみてくださいsudo dpkg --configure -asudo apt-get update && sudo apt-get upgrade
karthick87

ICSを介した接続は、特にリンクの1つがWiFiである場合、発生を待つのが難しいように聞こえます。もっと直接接続することは可能ですか?
msw

@mswは現時点ではありませんが、ICSはLinuxのiptables転送と同等であるという印象を受けましたが、実際にどのような問題が発生する可能性がありますか?それ以外の場合は正常に動作していると仮定します(それはそうです)。
古典的な

ICSがどんな目的にも十分耐えられるとは思っていなかったので、ICSの経験はほとんどありません。また、すべてのMicrosoftネットワークサポートへの管理(デバッグ)アクセスが頭痛になると想定していたためです。以下のあなたの経験は私の仮定を少し確認するようです。
-msw

回答:


9

Windows XPでのICSおよびIPフォワーディングの実装には基本的な問題があるようです。同じサーバーへの複数の接続を処理することはできません。が、最終結果はXPがLinuxシステムの有能なルーター/プロキシとして機能できないことです(Windows以外のシステムでは意図的に制限が設けられている可能性があります)。

これはICSに限定されないことに注意してください。Windowsレジストリには、ネットワークインターフェイスのIP転送を許可する隠しオプションがあり、同じ問題が発生します。

唯一の解決策は、ネットワークトポロジを変更してICSの使用を回避する(直接接続するか、専用のスイッチ/アクセスポイントを購入する)か、別のOSを使用して一時的なブリッジをセットアップすることです。私はubuntu live-cdを使用し(コンピューターではないか、最初は* nixを実行していたはずです)、パケット転送とIPマスカレードを有効にして、コンピューターが真正なルーターとして動作するようにしました。


3

Webには、IP6のICSの問題に関するいくつかの噂があります(確認できません)。彼らは、ICSが複数のIP6接続を受信すると、しばらく停止するという。これにより、wgetが機能し(1つの接続のみ)、apt-get更新が失敗する(多くの同時接続)理由を説明できます。

サーバーでIP6を無効にして、これが問題であるかどうかをテストできます。

端末からIP6を無効にするには、次を使用します。

echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf

次に、再起動して、更新できるかどうかを確認します。少なくとも機能する場合は、問題の場所がわかっています。IP6パーマネントを無効にするか、新しいセットアップを計画できます。IP6の無効化は一時的なハックであり、IP6は近い将来避けられないように思われることに注意してください。

IP6を有効に戻すには、/ etc / sysctl.confから以前の行を削除して再起動します。


ここではICSが犯人のようですが、あなたの提案はそれを修正しませんでした。コンピューターを直接配線した後、すべてが期待どおりに機能しました。リポジトリが更新されたのでapt-get install、ICS を使用することさえできません...うーん。
古典的な

たぶん、ICSには、同じサーバーへの多数の(または適度な)同時接続の問題があります。
ハビエルリベラ

あなたはいけない、sysctl.confのを修正した後のタイプ:再起動する必要がsysctl -a行くにしている良いが、あなた。常にエコーからパイプするのではなく、ヒアドキュメントを使用して入力を減らすこともできます。
メイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.