LinuxでTCPのサーバを置いて多量のTCP接続を行うと、初期設定のままではうまくいきませんでした。
多量のTCP接続を受け付けるには設定手順があると知ったので紹介します。
「Too many open files」と出て接続できない
1プロセスで開けるソケット数上限に達したようです。
上限を上げましょう(デフォルト1024)。
接続元と接続先でそれぞれ以下のコマンドを使います。
ulimit -n 102400
「Connection refused」と出て接続できない
まず接続先でdmesgコマンドを実行しましょう。
TCP: Possible SYN flooding on port 8888. Sending cookies.
と表示されたらSYN flooding攻撃かもとOSが判断して新規接続をブロックしています。
無効化しましょう( http://ja.wikipedia.org/wiki/SYN_flood )。
接続先で以下のコマンドを使います。
sysctl -w net.ipv4.tcp_syncookies=0