| 項目 | 詳細 |
|---|---|
| OS | Windows 10 Pro x64 |
| CPU | Intel Core i5 4590 |
| Memory | 24GB |
| GPU | NVIDIA GeForce GTX 1070 |
| Virtual | VMware Workstation Player |
| 項目 | 詳細 |
|---|---|
| OS | Ubuntu Server 18.04 LTS 64bit |
| CPU | Intel Core i5 4590 1 core 割当 |
| Memory | 4GB |
CPUもメモリも割当が大きければ大きいほどパフォーマンスに余裕が生まれますが、ゲームPCと同一PCで動かす場合はある程度制限したほうがいいでしょう。
なお、メモリはある程度ないと動かないのでおおよそ10GB以上は必要だと思われます。
現在身内サーバでUndead Legacyのサーバを動かしていますが、11GBくらいは消費してます。
また、メモリに余裕があるなら実メモリを使用するようにしてもいいと思います。
VMware Workstation Playerでは標準で実メモリだけでなくHDD/SSD内部のメモリファイルを使用するので転送速度が遅いとパフォーマンスが下がります。
実際のところそんなに影響はないですが、HDDの寿命が縮みやすいのでちょっと心配。
MemTrimRate = "0"
mainMem.useNamedFile= "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
MemAllowAutoScaleDown = "FALSE"
ディスクI/Oが減少しますが、設定した量だけの物理メモリを消費するため、その余裕がない状態だとホストOSごとパフォーマンス低下する恐れがあります。
物理ネットワーク接続の状態を複製は特にネットワーク接続の切り替えがないなら不要です。
合っても特に問題はないかなと思いますが。
あとはアダプタ設定にてブリッジするNICを選択します。
複数ある場合はインターネット接続に使用しているNICを選択しましょう。
$ sudo apt install openssh-server
$ sudo systemctl enable ssh
$ sudo systemctl restart ssh
$ ssh user@192.168.1.163
$ ip addr show
...
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9a:07:6d:8d:b9:7c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.163/24 brd 192.168.1.255 scope global br0
...
SFTPも同様に22番ポートで接続するとファイルへのアクセスも可能です。
当環境ではWinSCPからSFTPでアクセスしています。
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install lib32gcc-s1
$ mkdir ~/steamcmd && cd ~/steamcmd
$ wget http://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
$ tar zxvf steamcmd_linux.tar.gz
$ ./steamcmd.sh
起動できたらanonymouseでログインします。
Steam> login anonymous
ログインできたら7dtdサーバをダウンロードします。
Steam> force_install_dir ./7dtdserver
Steam> app_update 294420
Steam> quit
また、7dtdサーバの更新も同様にすることでできます。
$ cd 7dtdserver
$ ./startserver.sh
起動はできませんが、serverconfig.xmlが生成されるかと思います。
$ nano serverconfig.xml
...とは言ったものの、ぶっちゃけCUIでやってられないのでホストPC側にてSavannah Manager付属のConfigEditorで生成したものをSFTP経由でサーバ側へ移動させました。
$ ./startserver.sh -configfile=serverconfig.xml
ただし、サーバ動作中は何もUbuntuサーバへのコマンド操作ができなくなるのでscreenで動作させるといい感じ。
$ screen -S 7dtd
$ ./startserver.sh -configfile=serverconfig.xml
別の操作をする場合は「[Ctrl + A] + D」で現在の仮想端末からデアタッチ(抜ける)することができます。
$ screen -r 7dtd
$ telnet 192.168.1.163 8081
接続できるとパスワードを問われるので適当に入力すると7dtdサーバの操作ができると思います。
$ sudo nano /etc/systemd/system/7dtd.service
[Unit]
Description=7dtd dedicated server
After=syslog.target network-online.target
[Service]
Type=forking
WorkingDirectory=/home/ubuntu/steamcmd/7daystodie
ExecStart=/home/ubuntu/steamcmd/7daystodie/startserver.sh -configfile=/home/ubuntu/steamcmd/7daystodie/serverconfig.ded.xml
ExecStop=/usr/bin/pkill 7DaysToDieServe
User=ubuntu
Group=ubuntu
KillMode=none
Restart=no
[Install]
WantedBy=multi-user.target
まず、Savannah Managerを起動し、適当に初期設定画面を流します。
するとでかい画面が開くので、ローカルサーバーモードをオフにし、その下にあるIP・ポート・パスワードを適当に入力します。
画像は使い回しなのでIPが違いますが、今回は「192.168.1.163」となります。
適当に入力できたらあとは「Telnetで接続」をクリックします。
すると自動でパスワード入力を済ませた状態で接続できます。
$ mkdir ~/serverfixes && cd ~/serverfixes
$ wget http://illy.bz/fi/7dtd/server_fixes.tar.gz
$ tar zxvf server_fixes.tar.gz
$ mv -r Mods ~/steamcmd/7dtdserver
これでインストール完了です。
$ ls -la
| プロパティ名 | 説明 |
|---|---|
| web.map | マップ表示に関する権限 |
| webapi.getlog | サーバコンソールのログの表示に関する権限 |
| webapi.executeconsolecommand | プロパティ名から推測するとコンソールコマンドを実行する権限 |
| webapi.getstats | |
| webapi.getplayersonline | オンラインのプレイヤーを取得する権限 |
| webapi.getplayerslocation | プレイヤーの位置を取得する権限 |
| webapi.viewallplayers | |
| webapi.getlandclaims | LandClaimを取得する権限 |
| webapi.viewallclaims | |
| webapi.getplayerinventory | プレイヤーのインベントリを取得する権限 |
| webapi.gethostilelocation | ゾンビの位置を取得する権限 |
| webapi.getanimalslocation | 動物の位置を取得する権限 |