Ubuntu 9.10でvncserverを使う設定
■ デスクトップ共有を行う場合
標準でインストールされているvino(リモート・デスクトップ)を有効化すると、デスクトップ共有のみが行える。 システム → 設定 → リモート・デスクトップ で設定する。
■ ユーザ権限で稼働させる場合
vncserverをインストールする。
# apt-get install vnc4server
接続したいユーザに移って、そこでvncserverを常駐実行する。たとえば、userに接続したい場合は、次のようにする。最初に起動するときに、パスワードの入力が促され、自動的に ~/.vnc/passwd が作成される。
# su - user
# vncserver :1 ← display=1 (5901/tcp) を開く例
iptablesを利用している場合は、vncserverのポートを開ける。例えば、192.168.1.0/24にアクセスを許可する場合は次のようにする。
# iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 5901 -j ACCEPT
クライアントにインストールされているvncviewerより接続する。
# vncviewer 192.168.1.101:1 ← xvnc4viewerを使う場合の例
# vinagre 192.168.1.101:1 ← アクセサリ → インターネット → リモートデスクトップビューワを使う場合の例
ログアウト後は vncserver の残骸が実行されたままになるため、強制的に停止する。
# vncserver -kill :1
■ gdmのログオンをさせる場合
vncserverと(インストールされていない場合は)xinetdをインストールする。
# apt-get install vnc4server
# apt-get install xinetd
vncserverがxinetdから起動できるように、設定ファイルを新規作成する。
service vnc-2
{
disable = yes
socket_type = stream
wait = no
protocol = tcp
user = nobody
group = tty
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once PasswordFile=/etc/passwd_vnc -extension XFIXES
}
上で赤に着色されている”サービス名”に対応するポート番号を定義する。
~ 省略 ~
ggz 5688/udp # GGZ Gaming Zone
vnc-1 5901/tcp # VNC Server (display:1)
vnc-2 5902/tcp # VNC Server (display:2)
vnc-3 5903/tcp # VNC Server (display:3)
vnc-4 5904/tcp # VNC Server (display:4)
x11 6000/tcp x11-0 # X Window System
~ 省略 ~
ログオン用のパスワードを作成する。
# vncpasswd /etc/passwd_vnc
# chown nobody:tty /etc/passwd_vnc
Gnomeログオン画面を表示させるため、GDMの設定を行う。custom.confファイルが無い場合、/usr/share/doc/gdm/examples/custom.conf からコピーしてから編集する。(/usr/lib/gdm/gdmlogin というファイルは存在しないが、この内容でよいらしい…)
# GDM configuration storage
[daemon]
RemoteGreeter=/usr/lib/gdm/gdmlogin
[xdmcp]
Enable=true
[chooser]
[security]
[debug]
~ 省略 ~
<schema>
<key>security/DisallowTCP</key>
<signature>b</signature>
<default>flase</default>
</schema>
<schema>
<key>xdmcp/Enable</key>
<signature>b</signature>
<default>true</default>
</schema>
~ 省略 ~
xinetdとgdmサービスをリスタートする。
iptablesを利用している場合は、vncserverのポートを開ける。例えば、192.168.1.0/24にアクセスを許可する場合は次のようにすればよいはずだが、gdmに接続できない… (Wiresharkでパケットをチラッと見てみたが、原因不明)
# iptables -A INPUT -p tcp -s 192.168.1.0/24 -m multiport
--dports 5901:5904 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.0/24 -m multiport
--dports 6000:6007 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.1.0/24 -m multiport
--dports 6000:6007 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 177 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.1.0/24 -m multiport
--dports 1024:65535 --sport 177 -j ACCEPT
■ 参考リンク
・Linux Post : [SOLVED] Ubuntu 9.10: Remote VNC Server login problem