VNC セットアップと利用方法
単発の作業なら,MacOS のターミナルから ssh ログインしたり, ターミナルから「新規リモート接続」すれば良い. しかし,多数の作業を並行して実行する場合には, MacOS 側で一枚一枚作業ターミナルを増やすよりも, リモート接続先 Linux のデスクトップ環境それ自体を丸ごと使う方がラクなこともある.
そんな時には,VNC接続.
VNC のセットアップ
セットアップ条件
2016-02-20 版(初稿)
- 目的: MacBookPro からVNC接続,計算に使用している Linux のデスクトップ環境を MacOS 側でも使えるようにするため.
- VNC サーバ: CentOS 7.3
- VNC クライアント: MacOS X El Capitan 10.11.3
手順
サーバ側の作業
$ sudo yum -y install tigervnc-server $ vncserver :1 -geometry 1600x1024 (初回起動時のみパスワード入力) (自分の場合)ファイヤウォール設定,vnc-server にアクセス許可を出す. GUI 管理画面を使用するのがラク. CUI では firewall-cmd を使うのだろうが,いちいち覚えてられないので却下. (MacOS側から接続,作業) VNC接続の終了 $ vncserver -kill :1 ※使い終わったら必ず kill すること. そうしないと,ロックが解除されない. 次回 vncserver コマンド実行時にエラーが出て困る
MacOS側の作業
See also Mac Tips (hysk) & 個人設定 MacOS (hysk)
- Finder の「移動」から,「サーバへ接続」(command + K)
- vnc://(VNCサーバのIPアドレス):5901 を指定して接続
5901 がVNC のディスプレイ番号1に接続するためのポート番号.
便利に使うための追加設定
常にコマンド全てを入力するのは面倒. 出来るだけラクをしたい. また,VNCのデフォルト設定だと自分が普段使う設定と異なるので,カスタマイズしたい.
エイリアス登録
毎回 vncserver をコマンドオプション込みで入力するのはバカバカしい. Linux 側の $HOME/.bashrc に登録 (See also Linux 個人設定 (hysk)).
$ vi ~/.bashrc ### VNC settings alias vncstart='vncserver :1 -geometry 1600x1024' alias vnckill='vncserver -kill :1'
xinetd に登録し,かつXDMCPを使うことでマルチユーザ対応も出来るようだが, 個人で使うPCであれば,必要に応じて上記エイリアスしたコマンドを実行する方がよい.
何よりも,新たなPCにLinux を移設するのに際して,システム設定をいじる必要が無いのでラク.
実際には,xinetd 経由の設定も試してみたのだが,MacOS からのVNC起動テストが失敗したので, 問題解決せず,回避することにした... というのが実情. 原因は不明,特定する気力が乏しかったので放置(2016-02-20).
ウィンドウマネージャの変更
デフォルトだと,GNOME が起動してしまう. CentOS 7.x で使われている GOME3 系列は,見た目が自分好みでなく,極めて重い. Linux デスクトップとしてすら使いたくないくらい重いのに,ましてや VNC 接続では話にならないくらい応答が悪い(感覚的には,乗りに乗ってるときの高速キータイプ時に, 0.5テンポくらい遅れるような印象).
結論: GNOME からXfce へ変更
$ vi ~/.vnc/xstartup --- ここから #exec /etc/X11/xinit/xinitrc exec /usr/bin/startxfce4 --- ここまで ※行末の xinitrc の起動をコメントアウト,Xfce4 の起動プログラムに変更.
/etc/X11/xinit/xinitrc では,ユーザの指定 (~/.Xclients) が存在しない限り,
/etc/X11/xinit/Xclients を起動する.
中身を見れば分かるが,そこでは GNOME ないし KDE を起動する.
プログラム名で言うと,
/usr/bin/gnome-session ないし /usr/bin/startkde を実行する.
/usr/bin/startxfce4 は,Xfce4 の起動プログラムにあたる.
参考web
マルチユーザ対応
XDMCP を使えばユーザ認証出来るので,マルチユーザでの VNC 接続が出来るはず. 自分専用PCだと使う必要もないが,記録のためメモ.
- service として登録? こっちは正確な手順を調べてないが,そんなに難しくなさそう. vncserver の設定さえちゃんとしておけば.
xinetd を使う場合. 接続要求ごとに起動され,接続が終了すれば VNC サーバも終了する. こっちだと,余計なプロセスが走らないのでサーバ向きの設定と言えそうだ.
- /etc/services にVNCで使うポート番号登録
- /etc/xinetd.d/vnc に登録(登録内容の中身は,他者のwebを参照)
- /etc/gdm/custom.conf にてXDMCP のリモート接続許可.
ファイヤウォール設定とかが関与してくると,どのサービス・ポートに許可を与えるか,
という場面で考慮すべき事が増えすぎる.
一人で使うためだけなら,わざわざこれだけの設定を修正するのが煩雑.
私の場合は,自分専用Linux PC との接続だけだし,
研究で使う「道具」として割り切って使ってるので,
余計な設定変更はなるべくしないようにしてる.
参考web
更新履歴
更新日 | 内容 |
---|---|
2015-02-20 | 本ページの初稿作成. |