タグ別アーカイブ: telnet

TeamSpeak3のサーバで仮想サーバを追加する方法

TeamSpeak3のサーバで仮想サーバを追加する方法について。

TeamSpeak3のサーバではvirtualserverと呼ばれる仮想サーバ機能がある。これは旧来のTeamSpeak2にもあった機能で仮想的にサーバを増やす方法だ。デフォルト状態では一つのプロセス(実行中のTeamSpeak3サーバプログラム)が一つのTeamSpeak3サーバを提供している。TeamSpeakサーバを運営しているとチャンネルが増えすぎたので二つ目が欲しいなぁ、パスワードが掛かったサーバが欲しいなぁ、という要望が出てきたりする。

そういうときに、じゃぁ新しいTeamSpeak3サーバのプロセスを立てようか、という考えもあるのだけれど別プロセスより仮想サーバで立てる方がメリット色々。
まずはプログラム+configの位置を分けなくて良い事。別プロセスで管理する場合にはconfigを新たに書いてそれを読ませる必要がある。となると起動スクリプト(rcスクリプト)に手を加えるか、rcスクリプトを複製する必要がある。この複製というのはあまり良いモノでは無くて変更があったときに同期をとってやらないといけないだとか、プロセス名が同じだったりするのでkillallやpsが使いにくくなったり、/var/dbなサーバ用の領域にも気を遣って分けてやる必要がある。

そこでデフォルトで提供される機能が仮想サーバ、というわけだ。

この仮想サーバ、正直それほど使い勝手が良いとは思ってない。むしろ少し面倒くさいぐらい。ただ現行のTeamSpeak3はクライアント側に色々とGUIで作業できるようになってきていて、おかげで仮想サーバの運用も楽ちん。今回はそのサーバの立て方をたどってみる。

まず管理者でtelnetログインする。やり方については過去の記事を参照。

ログインが完了したら下記のようなコマンドを入力してやる。

shell> telnet ts.l2tp.org 10011
Trying 192.168.1.1...
Connected to ts.l2tp.org.
Escape character is '^]'.
TS3
Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.
login serveradmin ABcdEfG12345
error id=0 msg=ok
servercreate virtualserver_name=3rd server virtualserver_port=9989 virtualserver_maxclients=10
sid=8 token=Jadfafda9asdfaf1234xkppEQcxbDSDFAdaQQPJKn1Z2 virtualserver_port=9989

以上でおしまい。本当に簡単だ。
コマンドはservercreateを使う。オプションとして

  • virtualserver_name
  • virtualserver_port
  • virtualserver_maxclients

辺りを与えてやると良い。この辺りのオプションは後ほどGUIから変更することができるので神経質にならず簡単な数値を入力すれば良い。名前、maxclientsは後から変更できる。maxclientsは多すぎるとエラーを起こすので作成時には10とかの小さな値で着くって置いた方が安全。portはGUIクライアントから変更できないのでここで決めてしまおう。

ポート番号に関して、今回自分の環境では、1番目の仮想サーバをデフォルトポートとしていたので、2番目、3番目はそれぞれデフォルトのポート番号に1ずつ足していった。

サーバ ポート番号
1番目のサーバ 最初から存在するサーバ 9987 (デフォルト)
2番目のサーバ 9988
3番目のサーバ 9989
4番目のサーバ 9990
5番目のサーバ 9991

コマンドを入れたらエラーが出ていないか確認する。自分の環境ではmaxclientsが多すぎたのでエラーを起こしてしまった。

servercreate virtualserver_name=3rd virtualserver_port=9989 virtualserver_maxclients=100
error id=2817 msg=max\sslot\slimit\sreached

エラーメッセージが既に見にくいので敬遠してしまいそうだけど、見てみればサーバのスロット数の上限に達しました、と書いてある。一つのライセンスではスロット数の上限が512なので運用中のサーバと合わせてかずに注意したい。

なお成功した場合、tokenと呼ばれる文字列が発行される。次のステップではこれが重要になるので必ず消さずにメモしておくように。

servercreate virtualserver_name=3rd server virtualserver_port=9989 virtualserver_maxclients=10
sid=8 token=Jadfafda9asdfaf1234xkppEQcxbDSDFAdaQQPJKn1Z2 virtualserver_port=9989

サーバの作成が成功したらクライアントで接続してみる。
今回のTeamSpeak3クライアントはポート番号を入力するところがない。代わりにサーバアドレスにコロンでポート番号を追記してやるスタイルだ。例えば ts.l2tp.org サーバのポート番号9988に接続したい時には “ts.l2tp.org:9988” と入力する。これで繋がるはず。

初回接続時にはserveradminの管理付与を促される。serveradminはCUIでのログインに使ったりするキーワードなので混乱してしまうんだけれど、ココで言うadminとはvirtual serverの server admin の事。CUIのコマンドからでもいけるのだけれどここでは簡単にtokenを使って管理者権限を付与する。
初回に接続するとtokenを入力してくれ、という画面が出てくる。ここで先ほどメモして置いた、仮想サーバ作成時に発行されたtokenを入力すれば良い。成功するとユーザ名の右側に光り輝くSの文字が付くはず。これでひとしきりいろいろな事がTeamSpeak3クライアント側のGUIから行うことができる。
ちなみに初回起動時に出てくるtoken入力プロンプトなんだけれど、後から出すこともできる。メニューのPermissionから “Use privilege key”でプロンプトが出てくる。

キャプチャ

Serveradminの権限をもらったら仮想サーバ名、スロット数の変更を行った。
仮想サーバのチャンネル一覧の一番ルートのチャンネルを右クリックし、Edit virtual server。ここから出てくる画面でそれなりの設定ができる。

以上で仮想サーバの作成方法はおしまい。

今回はCUIをできるだけ使わずにGUIからできることはGUIでできるようにしてみた。やれることの幅からするとCUIの方が断然多いんだけれど、いかんせんCUIの使い勝手が悪くまたマニュアルの整備具合も良いとは言いがたい。(とはいえ、それなりの情報量をもったPDFファイルが一緒に付いてきててそれを読めばある程度は分かるんだけれど、目的からコマンドを探すのが大変だったりしてあと一歩及ばず。)
CUIは補完機能はもとより、入力履歴、入力済み文字の修正が不可と一世代前のシェル。それでもBackSpaceが使えるのはすごく便利。

最後に今回の作業で参考にした本家のフォーラム

[Mini Tutorials] Virtual Server Management

 

以上。

TeamSpeak3で管理者ログインする方法

TeamSpeak3で管理者ログインする方法について。

無料のボイスチャットソフト、TeamSpeak3。そのサーバを運営していると管理者でログインする必要がでてくる。管理者でのログインはわかりにくいのだけれどその方法についてのメモ。

過去のバージョンだとTeamSpeak3のクライアントから様々なクエリを使うとができていたと思うんだけれど、なぜだか現行バージョン(3.0.9.2)だと無理だったので他の方法で試してみた。
ちなみに過去のバージョンのやり方はTeamSpeak3 Wikiに載っているので参照されたし。

ログインしてクエリを実行するにはtelnetを行う必要がある。telnetは主にTCPを用いたいろいろなコマンドのやりとりをするもので、UNIX/Linuxに入っている。昔のWindowsには付いていたんだけれど最近のWindows 7とかだと見かけない。そういう場合にはTeraPadputtyを利用しよう。

telnetでのログイン

telnetでログインするにはIPアドレス又はホスト名、そしてポート番号が必要だ。IPアドレス、ホスト名についてはクライアントでログインするときに使用しているアドレス、ホスト名を入力しよう。ポート番号についてはデフォルトでは10011。TeamSpeak3では下記のようなポート番号を使っている。10011を3倍したものはファイル転送用だ。

サービス ポート番号
通常の音声チャット 9987 tcp
管理サーバクエリ接続 10011 tcp
ファイル転送用 30033 tcp

サーバ/クエリ


実際にtelnetで接続してみる。まずは “telnet ホスト名 10011″と入力する。接続が完了したら”login serveradmin password”としてログインしよう。

shell> telnet ts.l2tp.org 10011
Trying 192.168.11.1...
Connected to ts.l2tp.org.
Escape character is '^]'.
TS3
Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.
login serveradmin passwork
error id=0 msg=ok

うまく接続できない場合にはIPアドレスが正しいかチェックしてみる。該当のホストでnetstat -natsockstat | grep teamspeakなどしてみよう。
ログインするときのserveradminのパスワードが分からない場合にはパスワードをリセットしましょう。

これでサーバへログインできたと思う。この先にはいろいろなことができるのでやってみましょう。

FreeBSDのホストにsshが繋がらない時のある対処法

あるホストでsshの調子が悪くなった。
sshのサーバ側、繋がれる待ち受け側はFreeBSD7.2-R i386

OpenSSH is a derivative of the original and free ssh 1.2.12 release by Tatu Ylonen

クライアント側、繋ぎにいく側はFreeBSD。

これだとどこからもつながらない。

sshclient.l2tp.org%ssh badssh.l2tp.org
Connection to 10.0.0.1 timed out while waiting to read

FreeBSDだと繋がらない、というのは、windowsのputtyだと時間がかかるけどつながる。なんでだろう。

FreeBSDからtelnetするとこんな感じ

sshclient.l2tp.org%telnet badssh.l2tp.org 22
Trying 121.1.227.95...
Connected to badssh.l2tp.org.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.1p1 FreeBSD-20080901

とちゃんと応答がある。

予想だと名前解決あたりでこけてるんじゃないかな、と。

と思ったらマジでこけてた。resolv.confの最初がつながらないホストが指定してあった。

おそらくここのタイムアウト待ちして次のname serverに聞きに行く前に、freebsdのsshクライアントがタイムアウト処理しちゃうんだと思われる。それに対してputtyだとタイムアウト値が長い模様。