早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

VNC_setup (hysk)

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 本ページの初稿作成.