XmingやCygwin/XでCentOSへリモート接続する

ちょっとリモートでX Windowが使いたかったのでXmingCygwin/Xで環境作ってみたメモ。
今回は丁寧な解説無しでメモの貼り付け。応用は各自でよろしく。

CentOS

サーバがCentOS5だったので。他のディストロも設定ファイルの位置が違うとかそんなもんでしょ。

GDMの設定

GUIの場合。

  1. 「システム」「管理」「ログイン画面」を起動する。
  2. 「リモート」タブでスタイルを「リモート・ログインを無効にする」以外にする。
  3. XDMCPの設定」ボタンを押してダイアログで「間接的なリクエストを受け取る」を有効にする。
  4. 「セキュリティ」タブの「セキュリティ」あたりを適当にいじる(リモートからrootでログインできるようにするかとか)。


しかしこれだけでは足りない設定もあるので、結局設定ファイルもいじる必要がある。


設定ファイルを直接いじる場合。

/etc/gdm/custom.confをこんな感じにする。
KillInitClients以外はGUIでの操作で設定に反映される。

[daemon]
RemoteGreeter=/usr/libexec/gdmgreeter     ←最初からあった
KillInitClients=false                     ←クリップボードの共有に必要っぽい

[security]
AllowRemoteRoot=true                      ←rootログインしたい場合はtrueにする

[xdmcp]
Enable=true                               ←これを有効にしないと始まらない


/etc/X11/fs/configでxfsにTCPで接続できるようにする。

#no-listen = tcpコメントアウトする


gdm-restartして再起動する。

ファイアウォールとか

ファイアウォールでUDP177(XDMCP)とTCP7100(xfs)が通るようにする。
「システム」「管理」「セキュリティレベルとファイヤーウォールの設定」でぽちぽちやるか、iptablesコマンドでやる。

iptablesコマンド打つか、下記の設定ファイルを編集してservice iptables restart
/etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7100 -j ACCEPT


xinetdでgdmを許可する。
/etc/hosts.allowでこんな感じに(IPアドレスは適当)。

gdm : 192.168.10.0/255.255.255.0 : allow
ランレベル

あとランレベル5じゃないとダメらしいという噂がある。
/sbin/init 5するか/etc/inittabいじってランレベル5で起動する。

Windows側(Xming編)

XmingXming-fontsをインストールする。フォントもCentOS側のを使うからいらないかも?
http://sourceforge.net/projects/xming/

  1. XLaunchを起動する。
  2. 「One Window」あたりを選択する。
  3. 「Open session via XDMCP」を選択する。
  4. 「Connect to host」に接続先のIPアドレスを入力する。
  5. 「Remote font server」に接続先のIPアドレスを入力する。
  6. 「Additional parameters for Xming」に「-screen 0 1024x768」とか書くとウィンドウサイズを指定できる。
    その他のオプションはこの辺参照 http://www.straightrunning.com/XmingNotes/manual.php
  7. 「Save configuration」で設定ファイルに保存しておくと、ダブルクリックで起動できるようになる。

Windows側(Cygwin/X編)

Cygwinのsetup.exeでX11の中のxinitをインストールする。

XWin -screen 0 1024x768 -once -query 接続先のIPアドレス

-fp tcp/接続先のIPアドレス:ポート(7100) とかつけるとフォントも指定できるっぽい。