Ubuntu のみで 1 つのサーバーへの TCP 再送信

Ubuntu のみで 1 つのサーバーへの TCP 再送信

状況は次のとおりです。

オフィスにはコンピュータが数台ありますが、会社の Web サイトに接続できないのはそのうちの 2 台だけです。どちらも Ubuntu を実行しています。

いつもこんな感じです。Web サイトに 3 ~ 4 回は問題なく接続できますが、その後 TCP パケットがすべて再送信されますが、成功しません (スクリーンショットを参照)。そして、数分間 TCP 関連のどのデバイスにも接続できません。その後、接続できます。その後、再びエラーが発生し、ループします。

FTP でも同じエラーが発生します。FTP に接続でき、最初の数コマンドは正常に動作しますが、その後数分間動作しなくなります。

問題なくサーバーに継続的に ping を実行でき、ルーターを変更し、ISP に連絡したところ、すべて正常です。

症状から判断すると、問題は奇妙です:

  • 問題はそのウェブサイトでのみ発生しますインターネット上のすべてのものは何年も問題なく機能していましたが、一方で、そのウェブサイトはWindowsの同じコンピューターでもどこでも機能します。
  • SSH に接続すると、後で再送信エラーが発生しても、永久に接続したままになります。
  • しかし、SSH に接続する前に再送信エラーが発生すると、SSH に接続できなくなります。
  • Pingは常に問題ないので、traceroute/mtr
  • CentOSサーバーとオフィスのWindowsコンピューターで正常に動作します
  • Windowsを起動すると、同じUbuntuマシンで正常に動作します
  • 仕事用のUbuntuラップトップ以外のすべてのデバイスを切断して試してみましたが、それでも同じ問題が起こりました

これは問題が存在するかどうかを確認するために書いたスクリプトです:

#!/bin/bash

while :
do
    if ! [ $(curl --silent --connect-timeout 1 "our-website.com" | wc -l) -eq 12 ]; then
        echo "ERR"
    else 
        echo "OK"
    fi;

    sleep 1
done

新品のルーターで最後にテストしたところ、648 x OK、562 x ERR という結果が出ました。

私たちのCentOSサーバーは100% x OKを返します

これは (Ubuntu 14.04.2 LTS) でテストされました:

Linux 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

そして

Linux 3.16.0-41-generic #57~14.04.1-Ubuntu SMP Thu Jun 18 18:01:13 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

1 台のコンピューターはデフォルトのネットワーク マネージャーを使用し、もう 1 台のコンピューターは wicd ネットワーク マネージャーを使用します。

他のカーネルを試しましたが成功しませんでした。

私も変えようとした

sysctl net.ipv4.tcp_sack
sysctl net.ipv4.tcp_syn_retries
/proc/sys/net/ipv4/tcp_retries1

そして成功しませんでした。サーバー障害に関する質問のように聞こえるかもしれませんが、エラーは Ubuntu でのみ発生するため、ここで質問します。

これはホスティングの問題だと言う人もいるかもしれませんが、そうではありません。ホスティング会社に何度も問い合わせましたが、助けにはなりませんでした。私たちは共有ホスティングを使用していますが、その顧客で同様の問題を抱えている人はいません。また、他の場所でも問題なく機能することを確認できます。

助けてください。

サーバーの IP アドレスはぼかしましたが、サーバーの IP/URL を公開することにしました。次のようになります。 http://88.198.241.36:2222- ブラウザを数回更新すると動作しなくなります。毎回

ワイヤーシャーク

答え1

インターフェースの MTU を少なく設定してみてください:

sudo ifconfig eth1 mtu 1492

私も同じ問題を抱えていましたが、MTU サイズを変更することでこの問題を解決できました。

関連情報