ARK:SA用の自鯖をASASMで立てようとしたら1週間弱ハマった。
備忘録兼誰かの役に立てば…。
なお、ASASMの設定については外部サイトに記事があると思うのでそちらを参考にしてほしい。
どこにハマった?
- シェアードアドレス(CGNAT)という概念
- 知らずに始めようとしたらずっこけた
- 言い訳させてもらうと、これはJCOMサポート側も理解していなかった
- ルーターのポート開放
- 次にハマったポイント
- 範囲指定が悪さをしていることに気づくまで数時間かかった
- Win10のファイアウォール設定
- ぶっちゃけここはそんなでもない
- 素直に設定すればOK
- 立ち上げたサーバに同一LAN内から入る方法
- ヘアピンNATについてのシンプルな認識不足
- 一生懸命グローバルIPを叩いて疎通確認しようとしていた
最終的な環境
(モデム)KAON KCM3100
KCM3101から交換してもらったが、最終的な設定を考えるにおそらく3101でもいけると思う
しかし3101はアプリが単純に使いづらいので3100の方が楽
↓
(ブリッジモード)Aterm WX4200D5 ルーター
※ブリッジモードなのでモデム直結環境の人は気にしなくてOK
↓
自家サーバ(Win10)等々
最終的な設定
モデム
管理画面(IPアドレス初期値:192.168.0.1)にログイン
"ネットワーク">"LAN-IPv4">"Static IPv4 リース"より、
サーバ機のDHCP割り当てを固定
以降サーバ機のプライベートアドレスは便宜上192.168.0.150とする
"ファイヤーウォール">"ポート転送"より、
サーバ機の各ポートに対して穴を開ける
サーバー名は任意。ソースIPアドレスは空欄で適用すればAny扱いになるため空欄で。
7778は設定する必要が無い気もするが、一部サイトに記述があったため登録。
億劫がって、範囲で指定したり、TCP/UDPどちらも指定したりしないこと。
サーバー名 | 外部ポート | ソースIPアドレス | プロトコル | 内部ポート | サーバーIPアドレス |
---|---|---|---|---|---|
ARK_SA | 7777 | UDP | 7777 | 192.168.0.150 | |
ARK_SA | 7778 | UDP | 7778 | 192.168.0.150 | |
ARK_SA | 27015 | UDP | 27015 | 192.168.0.150 | |
ARK_SA | 27020 | TCP | 27020 | 192.168.0.150 |
サーバ機(Win10)
コンパネのファイアウォール詳細設定から上記と同じように設定していく。
(UDP 7777/TCP 27020/UDP 27015のローカルポートを許可。リモートポートは"全て"でOK)
ただしこちらは複数指定する場合範囲指定しても問題ない。
ただサーバマネージャ自体TCPおよびUDPのホワイトリストに設定されると思うので、
もしかしたら個別に設定はしなくてもいいかも…
サーバ起動引数を
ArkAscendedServer.exe Ragnarok_WP?Port=7777?Queryport=27015?RCONPort=27020 -NoBattlEye -culture=ja -WinLiveMaxPlayers=8 -ServerPlatform=ALL
で実行。内訳は、
Ragnarok_WP
:マップ名
?Port=7777
:ゲームポートに7777を使用
?Queryport=27015
:クエリポートに27015を使用
?RCONPort=27020
:RCONポートに27020を使用(RCONを使うのであれば)
-ServerPlatform=ALL
:ALLにしないとサーバ一覧に表示されない
など。
サーバ起動後(緑ランプ点灯後)、リソースモニターのネットワークタブでリッスンポートがそれぞれ開いていればOK。こんな感じ↓
これでアクセス可能な状態。
TCPについてはチェックツールがあるので、試しに27020へ打ってみると良いかも。
トラブルシューティング
Q:ルーター画面のWANと実際のグローバルIPが異なる
一番最初に躓いた項目。そもそも異なると気づくまでに時間を要した。
ルーター管理画面に表示されるWANのIPアドレスとwhatismyipなどで調べられるIPアドレスが一致しない、というもの。
A: JCOMの、というかシェアードアドレスの仕様。
まずJCOMにチャット問い合わせをする。
シェアードアドレスをやめて、グローバルIPを直接払い出してもらうよう相談する(自分は無料だった)。※早ければ当日中に切り替わる
※なおこの件について、初動として認識合わせのために電話したのだが、これが間違いだった。
電話応対者のネットワーク知識が乏しく微妙な回答をされたため、迂闊に電話で相談しようなどと思わないほうが良い。
Q:クエリポート27015がLISTENにならない
小一時間悩んだ、(恐らくASAの)バグ。
起動引数マップ名?Port=7777?Queryport=27015?RCONPort=27020
で指定しているクエリポート27015
をリッスンしない。
A: ASASM設定から一回適当なクエリポートに書き換え→保存→起動&終了→クエリポート戻し→起動
で設定が反映された。
Q:同一LANからグローバルIP指定でサーバに入れない
A: できない。KCM3100にヘアピンNATの機能および設定が存在しないため。
スマホのテザリングなどを利用してアクセスを試みるとよい。
なおLAN内から部屋に入ること自体は(サーバ一覧に表示されていれば)出来るがプライベートIPでのアクセスとなるため「外から人が入れるか」の検証はできない。
まとめ
ただ立ち上げて終わりだと考えていたので、思ったよりも苦戦した。
その分結構な勉強になった気がする。
次の資格はデスペかと考えていたがネスペをやったほうが良いかもしれない。