3流プログラマのメモ書き

元開発職→現社内SEの三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Linux)Fedora18でVNCの設定にハマった

(Linux)Fedora16でVNCを入れると同様の手順で、tigervnc-serverをインストールしたんですが、クライアントからなぜか接続出来ません。

Fedora18側で、以下のようにvncクライアントを入れて、自身に接続するとリモートできます。

# yum install vnc  ←vncクライアントインストール
# vncviewer localhost:1   ←自身をリモート

最初ファイアウォールかと思い、以下コマンドでiptablesを停止、スタートアップさせないようにしました。

# systemctl stop iptables.service
# systemctl disable iptables.service

しかし、これでもクライアントからはつながりません。

tcpdumpでポート5901を見る限りはクライアントからのパケットは飛んでいるようですが、サーバ側からパケットが出てないようです。

かなり悩んでFedora18についてググっているとITPro:新デスクトップ環境が加わったFedora 18に気になる情報が。。。
Fedora18で、ファイアウォールのサービス 「iptables」が「FirewallD(firewalld.service)」に変更された。FirewallDはファイアウォールを動作させながら iptablesのポリシールールを変更できるようにするデーモン。これまで、iptablesの設定のあと、再起動時にファイアウォールが一時的に停止状態になっていた。FirewallDではGUIの設定ツール「firewall-config」もあり、再設定の際にもパラメーターを覚えておかなくてよいため、楽になった。 とあります。

コイツかー! 以下のように、firewalldのサービスを止めるとクライアントからVNCリモートができるようになりました。

# systemctl stop firewalld.service
# systemctl disable firewalld.service
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'

しかし、VNCでつなげたと思ったら今度は「あれ!何かがおかしいです。」というエラーが。。
ユーモラスなメッセージですねw

さて、対応方法ですが、うつ病けんけんのFedora/Linuxのまとめ日記:【解決済み】Fedora18のVNC(Tigervnce)にログインすると、あれっ!何かがおかしいです。問題が発生して、システムの復旧ができません。ログアウトして再度試してください。にどんぴしゃな答えが書いてありました。ありがたや。
GNOMEのバージョンアップにtigervncが追いついていないようですね。
サーバ側のコンソールにGUIで[システム設定]→[詳細]→[グラフィック]→[強制フォールバックモード]をオンにすればいいようです。

サーバが手元になくて操作できない場合は以下の方法で出来ます。

方法1

sshでログインし、sudo yum install fluxbox でGnome以外のデスクトップ環境、もしくはウィンドウマネージャーをインストール。 対象ユーザになる。

$ mv ~/.vnc/xstartup  ~/.vnc/xstatup.bak
$ touch ~/.vnc/xstartup 
$ vi ~/.vnc/xstartup 

~/.vnc/xstartup の中身は以下
-----------------
gnome-terminal &
fluxbox &
-----------------

$ su -
# systemctl restart vncserver@:1.service

これでクライアントからVNC接続し、gnome-termianl端末が上がってるので、gnome-control-center と入力。

システム設定のウィンドウが開くので、ここからフォールバックモードに切り替え。

$ rm ~/.vnc/xstartup  
$ mv ~/.vnc/xstartup.bak  ~/.vnc/xstatup

これでVNCを再起動し繋ぐと古いgnomeで表示できます。

方法2

# yum -y install switchdesk
# yum -y groupinstall Xfce
# su - vnc設定ユーザ
$ switchdesk xfce  ← XFCE に切り替え
# systemctl restart vncserver@:1.service

これでVNCでリモートすると、Xfaceになっているので、デスクトップ右クリックからターミナルを立ち上げgnome-control-center と入力。 システム設定のウィンドウが開くので、ここからフォールバックモードに切り替え。

設定が終われば以下のようにしてgnomeに戻す。

$ switchdesk gnome

これでVNCを再起動し繋ぐと古いgnomeで表示できます。

まさかファイアウォールのパッケージが変わっているとは思いにもよりませんでした。。。