ARKサーバー構築
ARKサーバーの構築メモです
自宅に立ててみたかったので、レンタルサーバとか借りずに、
NUC8I5BEKにUbuntu Server 18.04 LTS入れて構築しました
(Windowsだと高いし、接続数の上限があるっぽい)
マイクラサーバーを構築したり、他にも色々遊んでみたかったので、
・メモリ(32GB)
・SSD(1TB)
メモリを多めに増設してます
(ARKサーバーは最低6GB以上メモリいるらしい)
お好みの設定
以下の設定でインストールしますので、お好みで読み替えてください
ユーザー名 | steam |
インストール先 | /home/steam/Steam/servers/ark |
ARKサーバーの構築
ファイアウォール
IPV6 を無効
27015, 7777, 7778 を許可
which ufw || sudo apt install ufw sudo sed -i.bak -r 's/^IPV6=yes$/IPV6=no/g' /etc/default/ufw diff -u /etc/default/ufw{.bak,} -IPV6=yes +IPV6=no sudo ufw status sudo ufw allow 22 sudo ufw allow 27015/udp sudo ufw allow 7777/udp sudo ufw allow 7778/udp sudo ufw default deny sudo ufw enable sudo ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 27015/udp ALLOW Anywhere 7777/udp ALLOW Anywhere 7778/udp ALLOW Anywhere
パッケージのアップデート
ps aux | grep apt | grep -v 'grep' sudo apt update sudo apt upgrade sudo reboot
lib32gcc1のインストール
SteamCmdは32Bitでないと動かないので32bitを使えるようにする
SteamCmdはcurl等でダウンロードしてインストールする方法もあるが、
公式がリポジトリでのインストールを推奨してるっぽいので、従った(公式)
dpkg --print-architecture dpkg --print-foreign-architectures sudo dpkg --add-architecture i386 dpkg --print-foreign-architectures sudo apt install lib32gcc1 sudo apt install steamcmd
ファイルオープン数の上限
sedで最終行付近に設定を追記していく
sudo sed -i.bak -e '$a fs.file-max=100000' diff -u /etc/sysctl.conf{.bak,} sudo sysctl -p /etc/sysctl.conf sudo sed -i.bak \ -e '$i * soft nofile 1000000' \ -e '$i * hard nofile 1000000' \ /etc/security/limits.conf diff -u /etc/security/limits.conf{.bak,} +* soft nofile 1000000 +* hard nofile 1000000 # End of file
pam.dのセッションファイルの編集
sudo sed -i.bak \ -e '$i session required pam_limits.so' /etc/pam.d/common-session diff -u /etc/pam.d/common-session{.bak,} session optional pam_systemd.so +session required pam_limits.so # end of pam-auth-update config
steamユーザーの作成
sudo adduser --disabled-password --gecos 'Steam' steam sudo id steam uid=1001(steam) gid=1001(steam) groups=1001(steam) cat /etc/passwd | grep steam steam:x:1001:1001:Steam,,,:/home/steam:/bin/bash ls -al /home/steam/ # curl でsteamcmdを入れる場合、このようにする # sudo mkdir -p /usr/games # sudo su - steam # mkdir -p ~/Steam/servers/ark # cd ~/Steam/ # curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - # sudo ln -s steamcmd.sh /usr/games/steamcmd
ARKサーバーのインストールと設定
「376030」は Steam で管理されている
ARK のサーバプログラムの ID を示している
steamcmd +login anonymous +force_install_dir ~/Steam/servers/ark/ +app_update 376030 +quit # steamcmd で対話形式で入れる場合、このようにする # Steam> login anonymous # Steam> force_install_dir# Steam> app_update 376030 validate # Steam> exit
ポート開放
自宅のポートを開放しておく
ブラウザ[192.168.x.x]
・UDP:7777
・UDP:7778
・UDP:27015
上記3ポートをARKサーバのIP(192.168.x.x)に転送するように
起動テスト
とうとう起動テスト
27015, 7778 が使用されていることを確認
cd ~/Steam/servers/ark/ShooterGame/Binaries/Linux/ ./ShooterGameServer TheIsland?listen?SessionName=Teityura?ServerPassword=TestPass?ServerAdminPassword=TestPass -server -log sudo netstat -anp | grep -e 27015 -e 777[78] udp 0 0 0.0.0.0:7778 0.0.0.0:* 2856/ShooterGameSer udp 0 0 0.0.0.0:27015 0.0.0.0:* 2856/ShooterGameSer sudo lsof -i:27015 -i:7777 -i:7778 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ShooterGa 2809 steam 11u IPv4 38209 0t0 UDP *:27015 ShooterGa 2809 steam 18u IPv4 38217 0t0 UDP *:7778
デーモン化
sudo su - <普段使いのユーザ> sudo vim /lib/systemd/system/ark-dedicated.service # =============================================================================================== [Unit] Description=ARK: Survival Evolved dedicated server Wants=network-online.target After=syslog.target network.target nss-lookup.target network-online.target [Service] ExecStartPre=/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/Steam/servers/ark +app_update 376030 +quit #ExecStart=/home/steam/Steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=Teityura -server -log ExecStart=/home/steam/Steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=Teityura?ServerPassword=ServerPassword?ServerAdminPassword=AdminPassword -server -log WorkingDirectory=/home/steam/Steam/servers/ark/ShooterGame/Binaries/Linux LimitNOFILE=100000 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s INT $MAINPID User=steam Group=steam [Install] WantedBy=multi-user.target # ===============================================================================================
設定内容(お好みで変更してください)
起動で -NoBattlEye オプションをつけると、BattlEyeを無効にできるっぽい
マップ名 | TheIsland |
サーバー名 | SessionName=Teityura |
サーバーパスワード | ServerPassword=ServerPassword |
管理者パスワード | ServerAdminPassword=AdminPassword |
自動起動
sudo systemctl daemon-reload sudo systemctl enable ark-dedicated.service sudo systemctl start ark-dedicated.service systemctl status ark-dedicated.service
ARKサーバーへの接続
Steam – ARKサーバーの追加手順
1. Steamのゲームクライアントを起動する
2. メニューバーの「表示」→「サーバー」を選択し、お気に入りタブを選択する
3. 右下の「サーバーを追加」ボタンを押下し、
4. 「192.168.x.x:27015」 を入力し、追加する(ローカル接続)
5. 「teityura.wjg.jp:27015」 を入力し、追加する(グローバル接続)
Ark – ARKサーバーの接続手順
1. ARKを起動
2. 「ARKを始める」を選択
3. セッション一覧の左下の、セッションフィルターで「お気に入り」を選択
4. 「サーバー名(Teityura)」が出てくるので、選択
5. 「参加」をクリック
6. 設定したパスワードを入力して、「OK」をクリック
パラメータ変更前にバックアップ
/home/steam/Steam/servers/ark/ShooterGame/Saved/
上記ディレクトリにセーブデータや設定情報が入っている
初期の状態をバックアップしておくといいかもしれない
# cd ~/Steam/servers/ark/ShooterGame/Saved/Config/LinuxServer/ # cp GameUserSettings.ini GameUserSettings.ini.org # cp Game.ini Game.ini.org # vim GameUserSettings.ini # vim Game.ini # sudo reboot # systemctl status ark.service
パラメータ変更
サーバーのテイム速度等を変更できる
cd ~/Steam/servers/ark/ShooterGame/Saved/Config/LinuxServer/ vim GameUserSettings.ini vim Game.ini diff -u GameUserSettings.ini{.org,} +TamingSpeedMultiplier=10.00000 +HarvestAmountMultiplier=3.00000 +XPMultiplier=3.00000 +NightTimeSpeedScale=5.00000 +PlayerCharacterWaterDrainMultiplier=0.10000 +PlayerCharacterFoodDrainMultiplier=0.10000 +PlayerCharacterHealthRecoveryMultiplier=5.00000 +DifficultyOffset=1.00000 sudo systemctl restart ark-dedicated.service sudo reboot
参考
SteamCMD
Dedicated_Server_Setup
Dedicated_Server_Setup(ja)
Server_Configuration
Server_Configuration(ja)
ARK: Survival Evolved 個人サーバを構築しよう
コメント