Character

Character

  • 0

Raspberry Pi3でTS3サーバーを立てる!

Public
普段から友達と遊ぶときはフリーのサーバーを間借りしつつTeamSpeak3でVCをしてました。(ありがとう、カーちゃんサーバー!)
しかし、ここ数ヶ月はサーバーが有名になったのか通信状況が悪くなることがちょくちょく起きるようになりました。
そこで、負荷が少しでも下がるように一念発起して自前でプライベートなTS3サーバーを建てることにしたのです。動機の6割がラズパイ3 欲しさだったのは内緒

サーバーにはRaspberry Pi3を使うことにしました。安いし。欲しかったしね!

さてここで鋭い方は「ラズパイってARMだよね?TS3のサーバー動かないよね?」とお気づきになるかもしれません。そう、普通には Raspberry PiにTS3の サーバーは 入れられないのです。
「TS3サーバーにLinux版あったよねー」と軽い気持ちで買って少し後悔w

そんなラズパイにもTS3サーバーを入れる方法が無いわけではないのです。
Raspberry PiにTS3を入れるには2つ選択肢があります。
①raspberry piにqemuをインストールしてx86のDebianをエミュレートする
②raspberry piにExaGearをインストールしてx86のDebianをエミュレートする

どちらもTS3が動くマシンをエミュレートする事になるのですが、細かい差があります。
①はなんといっても無料。0円。しかし、動作が重く低スペックに。
②は有償です。ちょっとお高めの$27.45。その代わり①よりも軽いです。wineもなんとか動くらしい。

最初はどうせTS3のサーバーとしてしか使わないしと①で行こうと思ったのですが、肝心のラズパイ用qemuがリンク切れで手に入らず…
仕方なく②で行くことになりました。
-------追記---------
どうやら、qemuは自分でビルドする物のようです。
ラズパイ用に自分でビルドしている人の記事などもあったので、お金使いたくなかったりやる気のある人はやってみると良いと思います。
----追記ここまで----
ExaGearの購入ページはこちら
このExaGear、なんとご丁寧に公式ページにTS3サーバーの建て方が載っていますw

正直このページを見てもらえば終わりだったりもするのですが、それだけではアレなので自分が行ったことでも。

1:OSのインストール
 まんまですね。NOOBSを使いました。
 最初の画面のlanguage欄は罠です。

2:Raspberry Piの初期設定
 屋根裏Linuxさんを参考にOS等のアップデート、作業用ユーザーの作成、初期ユーザーpiの削除、vimのインストールの設定を行いました。
 (外からSSHを使う予定は無いのでSSHの設定は行いませんでした)
あ、そうそう、piアカウントを削除するとデスクトップのラズベリーパイの設定類が動作しなくなるので困る方は削除しない方が良いです。

3:IPアドレスの固定
Click to showClick to hide
鯖たてるためにも、ssh接続のためにも取りあえずやりましょう
Raspberry Pi3では今までのラズパイとは設定の仕方が少し異なります。
/etc/dhcpcd.conf
を開き、一番下に
interface eth0
interface enxb827eba2dfe7
static ip_address=192.168.X.X/24 (IPアドレスがかぶらないように好きな所を指定。)
static routers=192.168.X.1 (大元のルーターのIPアドレス)
static domain_name_servers=X.X.X.X (routersと同じか魔法の数字)
を追記します。
-----追記-----
どうも、2017年8月辺りに更新されたStretchと言うバージョンでは、
IPアドレスの固定に使うインターフェース名がeth0からenxb827eba2dfe7とか言う謎名称に変わったようです。
IPアドレスの固定がされなくなって焦りまくった。。。
----ここまで----
---さらに追記---
↑の情報は半分ホントで半分嘘でした。。。
基本的には名称はeth0で大丈夫です。
ただ、条件はよくわかりませんが、謎名称になる場合もあるようで。。。
上手くいかなかったらちょっと調べて見てください
----ここまで----

今使われているIPアドレスを知りたいならwifiが使えること前提ですが、androidiosアプリのFingが便利です。まぁ大抵は140番辺りを指定すればDHCPの自動割り振りともかぶらないかな?
そうそう、 Raspberry Pi3にはWifiとBluetoothが標準で搭載されています。
今回の作業で一番の驚きでしたw
標準のwifiを使うならinterfaceでwlan0を指定すればよいです。

4:ExaGearの導入
Click to showClick to hide
さてここからExaGearをつかいます。
購入時に入力したアドレス宛にメールがすぐに届くと思います。そのメールにはライセンスキーファイルが添付され、ExaGear本体のDLリンクが記載されています。このキーファイルとExaGear本体をラズパイの同一ディレクトリに置きます。
届くメールには~/Downloadsディレクトリに置くように書かれていますがおそらく関係ないでしょうw
自分はscp接続でキーファイルを送り、本体はwgetで直接落としました。
後はDLしたファイルをtarで解凍しinstall-exagear.shをsudoで実行してインストールします。
インストールが終わったら、ExaGearを起動します。
コマンド"exagear"を実行すれば起動します。
コマンド"arch"を実行して"i686"と表示されればOKです。
そしたら"sudo apt-get install bzip2"を実行します。

ここで注意なのですが、"arch"を打った際に"i686"と表示されている間は別マシンを動かしている状態ですので、この状態でインストールしたものはラズパイ本体にはインストールされません。(自分は失敗した。)
ExaGearを抜けて通常環境に戻るには"exit"でOKです。あ、この作業中は戻らないでね!

5:TeamSpeak3の導入
Click to showClick to hide
ここから先はもう普通にLinux機でTS3を導入するのと変わりません。
まずTS3用にアカウントを作ります。アカウント名とパスは"teamspeak"推奨です。
もしアカウント名を別の物にする場合、後述のteamspeak3ファイルを変更する必要があります。
そしたら/usr/local/teamspeakディレクトリを作成し、そのディレクトリの所有者をchownコマンドでTS3用アカウントにします。
その後suコマンドでTS3用アカウントにスイッチ。
/usr/local/teamspeakに移動し、
wget http://dl.4players.de/ts/releases/3.0.13.6/teamspeak3-server_linux_x86-3.0.13.6.tar.bz2
でTS3サーバーを落としてきます。
落としてきたものをtarで解凍したらtar.bz2ファイルはrmして構いません。

6:TS3起動!
Click to showClick to hide
後はTS3の起動です。
/usr/local/teamspeak/teamspeak3-server_linux_x86/ts3server_minimal_runscript.sh
を実行してください。
起動すると"IMPORTANT"な表示が出ると思います。そこの内容はどこかメモ帳にでも写しましょう。管理者用のアカウントの情報ですが再表示は出来ません。このアカウントはサーバーの細かい設定をする際に使いますがとりあえず今回は使いません。

試しにPCのTS3クライアントから普段使っているアカウントでログインしてみましょう。自分がログインする際はラズパイのローカルIPアドレスで入れます。
ログインしたらまず特権キーの入力を求められると思います。そしたら2つめの"IMPORTANT"に記載された長いキーを入れます。するとそのアカウントがサーバー管理者に指定されます。

そこまで出来たらラズパイ側でCTRL+Cでサーバーを落とし、"exit"二回でTS3用アカウントとExaGearから抜けます。

ここからラズパイの起動時にTS3サーバーが自動起動するように設定していきます。
"arch"で"armv71"と表示されることを確認してから、
wget http://s3-us-west-2.amazonaws.com/exagear-ts3-3.0.13/teamspeak3
で自動起動用ファイルを落とします。
sudo mvで/etc/init.dにファイルを移動し、chmodで移動したファイルの権限を755にセットします。
もしアカウント名を変更している場合、teamspeak3ファイルを開き13行目の
USER=
の内容を変更してください。
最後に
sudo update-rc.d teamspeak3 defaults
を入力して完了です。

7:ポートの開放
Click to showClick to hide
最後の難関、ポート開放です。とはいえ操作自体は簡単です。操作だけは・・・
お使いのルーターにログインします。大抵は192.168.X.1(Xは0か1)で入れると思います。
アカウント名とパスを入力し、中には入れたらポート設定画面に移動します。
え?アカウントとパスがわからない?それはどうしようも無いな・・・
NECであれば「ポートマッピング設定」、Baffaloなら「ポート交換設定」、他には静的~みたいな名前のメニューになっていると思います。

移動できたら適したところにラズパイのIPアドレス、開放するポートを入力して設定。
TS3に関係するポートは
 UDP 9987 (ボイスチャット用)
 TCP 10011 (サーバー管理用クエリポート)
 TCP 30033 (ファイルサーバー用)
の3つで、実際に開放するのはUDP 9987とTCP 30033だけで良いと思います。TCP 30033はTS3でスクショのやりとりがしたいとかで無ければ開けなくて良いです。

これでポート開放は出来ているはずですのでスマホなり他の人なりに入ってみて貰いましょう。
グローバルIPアドレスでサーバーに入れます。

入れましたか?入れた方はおめでとうございます!作業完了です!適当にサーバーの設定を行ってボイチャを楽しみましょう!
入れなかった方(私です)は・・・ここからが大変です。なにせ原因がわかりにくいのですから。

確認するポイントとしては、
 ①開放したいポートを入力する場所が合っているか
 ②開放するIPアドレスとポートが間違っていないか(特にUDPとTCPの選択ミス)
 ③ラズパイのIPアドレスが固定できていないor他端末とIPアドレスがかぶっている
 ④自宅のネットワーク網の構成・設定ミス
辺りになるかと思います。
ポート開放においてよく槍玉に挙げられるファイアウォールは今回に関してはほぼ関係ないと思います。Rasberry Piにも無いわけではないですが、デフォルトではそう邪魔しない設定になっていると思います。

ちなみに自分は④でした。私の家の環境は
インターネット-ゲートウェイ-ルーター(プロパイダ支給品)-無線lanルーター(親機)-無線lanルーター(子機)-ラズパイ
と言う構成なのですが、この中の無線lanルーター(親機)がアクセスポイントモード(APモード)になっているべきだったのに、無線ルーターモードになっておりルーター(プロパイダ支給品)と無線lanルーター(親機)が両方ルーターになっていました。二重ルーター状態っていうのかな?このせいでルーター(プロパイダ支給品)でポート開放しても無線lanルーター(親機)でポートが開放されないので接続できない、と言う状態でした。


さてどうでしたでしょうか。具体的なコマンド等はそれぞれの解説サイトを見ていただくと良いと思います。

サーバーに対して最低限設定すべき事として、サーバーパスワードの設定と、サーバーリストに載らないようにすることはやった方が良いと思います。
サーバーに入ったら、チャンネル一覧に表示されているサーバー名部分を右クリックして「バーチャルサーバーの管理」を選択し、パスワードの欄に任意のパスワードを入力し、その下の方の「その他」タブにある「サーバーリストへの通知を有効にする」のチェックを外します。
ここまでやればとりあえずサーバーとして使えると思います。


興味が湧いたらやってみてね!SDカードが既にあるなら1万円かからずに作れるから!
なんかRaspberry Pi zeroでも建てられるみたいで、それならもっと安くなりそう。

FF14全く関係ない日記になってしまった。
どこかに残しておきたい!って思ったけどネットに公開できる場所がロドストか増田しか思いつかなかったんだもの・・・
Comments (0)
Post a Comment

Community Wall

Recent Activity

Filter which items are to be displayed below.
* Notifications for standings updates are shared across all Worlds.
* Notifications for PvP team formations are shared for all languages.
* Notifications for free company formations are shared for all languages.

Sort by
Data Center / Home World
Primary language
Displaying