[メモ] Xubuntuでおひとり様サーバーを立てるまで 2
- 2010-06-27
- カテゴリ: Client Side
- タグ: Linux Xubuntu
前回の記事に引き続いてXubuntuサーバーの初期設定をメモ。今回はXmingを使ったリモートからのGUI操作関係の設定と、VALUE DOMAINのDDNSを使ったサーバー公開の設定について。
SSH + X11 Port Forwardingを使ったGUI接続
まずはGUI接続方法の一つ目。SSHサーバーのデフォルトの設定でX11ポート転送が有効になっていたので、Windows PCからSSHでトンネリングしたGUI接続を試みる。
Xubuntuサーバー側で追加の設定をする必要はなくて、Windows PC側で↓のような準備をちょろっとやったらXmingで接続してみる。
XmingとPuTTYをインストール。
TeraTermで使っているOpenSSH形式の秘密鍵を、PuTTYgenを使ってPuTTY形式に変換し、Pageantに登録する。
-
XmingでXubuntuサーバーに接続し、startxfce4を起動する。
XLaunchを起動して「One window」→「Start a program」→「startxfce4」→「Using PuTTY (plink.exe)」→「ホストアドレスとユーザー名」と設定していくだけでだいたいOKなはず。設定ファイルに書き出すと↓のような感じになる。
<?xml version="1.0"?> <XLaunch xmlns="http://www.straightrunning.com/XmingNotes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd" WindowMode="Windowed" ClientMode="StartProgram" Program="startxfce4" ClientStart="PuTTY" RemoteHost="192.168.1.5" RemoteUser="liosk" Display="0" Clipboard="true"/>
↓のような感じにログインすることができる。
これでSSHが使えるところならどこからでもセキュアにGUIログインすることができる。
XDMCPを使ったGUI接続
とはいえ、SSH + X11 Forwardingを使ったGUI接続だとパフォーマンス等もろもろの理由で不満が多いので、XDMCPを使ったGUI接続も設定しておく。
XDMCPを使った接続を有効にするためには、gdmの設定ファイルを編集する。
sudo vim /etc/gdm/custom.conf
↓の設定項目を追加してgdmを再起動する。
[xdmcp] Enable=true DisplaysPerHost=2
XLaunchを起動して「One window」→「Open session via XDMCP」→「ホストアドレス」と設定していく。設定ファイルに書き出すと↓のような感じに。
<?xml version="1.0"?> <XLaunch xmlns="http://www.straightrunning.com/XmingNotes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd" WindowMode="Windowed" ClientMode="XDMCP" XDMCPHost="192.168.1.5" Display="0" Clipboard="true" ExtraParams="-screen 0 640x480"/>
↓SSHを使ったときよりもちょっとリッチな感じのGUIに。応答速度もだいぶ速い。
ただし、XDMCPは通信経路が全く暗号化されず、パスワードなんかも平文でだだ漏れなので、LAN外には公開しないように注意する。
DDNSの設定
ダイナミックDNS (DDNS) という仕組みを使って、自宅のサーバーを外部に公開してみる。VALUE DOMAINがDDNSの機能に対応していたので。
DDNSは、公開するサーバーから定期的にネームサーバーにIPアドレスを連絡することでDNSレコードを書き換える仕組み。これを使えば固定IPアドレスを持っていなくても外部にサーバーを公開することができる。
まずはVALUE DOMAINのネームサーバーに↓のようなAレコードを定義する (home.example.comを自宅サーバーに割り当てる場合)。
a home 192.0.2.1
続いて、ダイナミックDNSの設定フォームを使って、IPアドレス連絡用のURLを作成する。↓のような感じ。
http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=example.com&p=dyn_pass&h=home&i=
p=dyn_passのところには、VALUE DOMAINの管理ページで設定できるダイナミックDNS用のパスワードを指定する。IPアドレス欄は空欄にする。
VALUE DOMAINのDDNSは↑のURLにHTTPリクエストを送ると、該当するホスト名のDNSレコードを書き換えて、リクエスト発信元のマシンに向くように設定される仕組みになっている。なので、Xubuntuサーバーから↑のURLに対してHTTPリクエストを発信する。wgetを使って↓のような感じ。
wget -q -O - 'http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=example.com&p=dyn_pass&h=home&i='
cronを使って定期的に↑のリクエストを送るために、
crontab -e
を実行して、↓の一行を加える。
*/30 * * * * wget -q -O /dev/null 'http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=example.com&p=dyn_pass&h=home&i='
これで30分に1回、DNSレコードの更新リクエストが送信される。
後はルーターの設定で適切なポートを開くだけで、自宅のサーバーを全世界に公開することができる。
ちなみに、
a home 192.0.2.1
に含まれるホスト名とURLに含まれるホスト名 (h=home
) は一致していないとDNSレコードの更新がうまくいかない。
この質問と回答にあるように、ワイルドカードと組み合わせるために
a home.example.com. 192.0.2.1
などとしてみたけどうまくいかなかった。仕方がないので、ワイルドカードを使わずに↓のようにサブホストを全て列挙している。
a @ 198.51.100.1 a foo 198.51.100.1 a bar 198.51.100.1 a baz 198.51.100.1 a home 192.0.2.1
関連記事
- [JavaScript] UUID.js を更新しました!
- [JavaScript] newは大事だよ!
- [メモ] Xubuntuでおひとり様サーバーを立てるまで 2
- [メモ] Xubuntuでおひとり様サーバーを立てるまで 1
- 乱数の精度を調べてたらOpera Miniのバグを見つけた
トラックバック URL
- http://liosk.blog103.fc2.com/tb.php/201-2fb81c27