同一グローバルIPのマシンが、CS:GOのマルチプレイ鯖に繋がらないとき
リリースされて以来、日課のように、妻と一緒にCS:GOで遊んでいる私ですが、 最近同じサーバーに接続しようとすると失敗するようになってしまい、すごく困ってました。 色々調べてたんですが、解決策が見つかったので展開。
同じグローバルIPから繋がらないっていう特殊なケースなので、 あんまり他所の家庭では参考にならないかも知れませんね。。。
現象
- 片方がロビーに招待して、何かゲームモード選んでマッチを探す
- しばらくしてどっちか一人だけがサーバーに繋がって片方はロビーに取り残される
- 追いかけて後から入ろうとしても接続がタイムアウトする
原因・解決策
要約するとポートが競合するから、LAN内でユニークになるように指定しろってことらしいです。
- SteamからCS:GOの起動オプションを開く
- 一台の起動オプションに
+clientport 27001
と入力して確定 - もう一台でも同じように起動オプションを開き
+clientport 27002
と入力して確定 - さらに複数台マシンがある場合はポート番号をインクリメントしていく(単に違ってれば良いっぽい)
何となくポートの競合か、あるいは不正対策の為にサーバーのロジックで同一グローバルIPを弾いてるのかなとか考えてたんですが、後者じゃなくて良かったです。そうじゃないと大会とか難しいですもんね。見た感じLANで繋いでるっぽいし。
不思議なのは記事を見る限り2015年3月時点で少なくともそういう仕様だったっぽいのに、今まで遊べてたことですね。。。誰か理由がわかれば教えてください。
日本語の記事が無かったんで書いてみました。 私のように困ってる誰かの助けになれば幸いです。
findコマンドでの検索時に、否定の条件を指定する
検索条件の前にエクスクラメーションマークをつける。
$ find . ! -name "*.log"
例えば一括でログファイルを消したいけど、今日のは残しておきたい場合は、以下のように指定すればよい。
$ find . ! -name "catalina.out.2014-10-26" -name "catalina.out.*" | xargs rm -rf
find + xargsは便利。