unreal-info

上級編

ここからは、便利で恰好の良いサーバを作るためのテクを書きます。 まず、UTサーバーの起動、停止、再起動が簡単にできるようになりました。 次は細かな設定をするのですが、UTにはwebminという便利なツールがついています。 UTサーバにブラウザから繋げると、UTの設定項目が出てきて簡単に設定変更ができるスグレモノです。 これを使わない手はないですが、実は問題があります。 UTの最終パッチであるバージョン436 Linux版はなんとLinuxカーネル2.2系を使うことを前提に 作られているため最近のLinux(2.4系カーネル)ではうまく動かないのです。

進化が早すぎるOSは、(アップデートしないorアップデートの遅い)商用のアプリケーションにとって しばしば都合の悪い状態を引き起こします。OS自体が突っ走って、周りのソフトウェアがついていってない 状況であると言えるでしょう。 (あくまで商用のソフトがです、フリーウェアは、世界各国の人々の協力でなんとか追いついています)

不具合について

2.4カーネル上のUT webminは、ローカル(LAN)以外からの設定変更要求を受け付けないというというものです。 つまり、LAN内のマシンからならwebminで設定は変えれるがインターネットを通じて遠隔では、設定を変えることが不可能ということです(環境によってはLAN内マシンからも不可能らしい)。

解決方法について

ここで、解決方法を思いついた人はセンスいいです、ハッカーになれます(私は思いつきもしなかったw) 外部からの要求の場合は、ローカルの要求に変換すればよい、というのが答えです。 簡単にいうと、webminがポート8000を使うとします、そのとき外部から設定を変える場合はポート9000に繋いで、その情報をポート8000に受け渡せば、webminには、内部情報に見えてしまうのです。 通常は

インターネット --> ポート8000 --> webmin
ですが、これを
インターネット --> ポート9000 --> 特殊プロキシ --> ポート8000 --> webmin
とすることで解決するのです。 何をするかというと、以下を記述したファイルを、/etc/xinetd.d以下に入れるだけです。 そして
#/etc/init.d/xinetd restart
として、xinet.dを再起動させれば特殊プロキシーとして機能します。 ブラウザから繋ぐ時は http://サーバのURL:9000/ServerAdmin/ を指定して、あらかじめ設定しておいた名前とパスワードを入力するだけです。
-----------ここから特殊プロキシの記述-----------

service UTwebmin
{
# 以下でwebminのプロキシーとしてを使うポートを指定します
# ブラウザから繋ぐ時は、http://サーバのIPアドレス:以下で指定した番号/ServerAdmin/ となります
# 例 http://192.168.0.1:9000/ServerAdmin/
# ブラウザから繋ぐ時は、URLを完璧に指定しないといけません。とくに最後の /を忘れやすいので注意

port = 9000

socket_type = stream
protocol = tcp
wait = no

# webminに接続できるサーバの指定をする項目です、IPアドレスで指定すること
# 使う場合は、#をはずすだけです。

# only_from = localhost 127.0.0.1 203.141.141.125

user = root
log_on_failure += USERID
disable = no

# 上記で指定したポートを何番のポートに繋ぎ変えるかを以下に指定します。
# 127.0.0.1 ポート番号という形で指定します。ここでいうポート番号は
# UnrealTournament.iniの[UWeb.WebServer]セクションに書いたwebminのポート番号のことです。

redirect = 127.0.0.1 8000

}

---------------------ここまで-------------------