CentOS7サーバにVNCサーバを構築(tigervnc-server)してクライアントPC(windows10)から、リモートでGUI接続できるように設定します。
環境
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# uname -a
Linux localhost 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
tigervnc-serverのインストール
# yum install tigervnc-server
VNCサーバのディレクトリ構成
VNCサーバの設定
/usr/lib/systemd/system/ディレクトリにあるvncserver@.serviceの設定ファイルをコピーしてvncserver@:1.serviceを作成します。(ユーザが1人の時)
# cp /usr/lib/systemd/system/vncserver@.service /usr/lib/systemd/system/vncserver@:1.service
続いて作成したvncserver@:1.serviceをエディタで編集します。(viエディタを使用)
2箇所の<USER>となっているところにログインするユーザ名(今回はcentos7)に変更します。
# vi /usr/lib/systemd/system/vncserver@:1.service
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
↓
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l centos7 -c "/usr/bin/vncserver %i"
PIDFile=/home/centos7/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
もし複数のユーザでVNCサーバへ接続したいときは、その分のユーザ設定ファイルを作成する必要があります。
vncserver@:2.service、vncserver@:3.service…と連番で作成、その番号ごとにログインユーザ名を設定します。
# systemctl daemon-reload
vncserver@:1.serviceという名前のサービスが登録されます。
VNCユーザの設定VNCを使用するユーザごとにパスワードの設定をする必要があります。
以下の操作は管理者(root)から一般ユーザへ切り替えてパスワードとパスワード確認を入力します。
# su - ユーザ名
$ vncpasswd
Password: ******
Verify: ******
続いて、このユーザがVNCで接続したときのデスクトップ環境をGNOMEに設定。
$ cd ~/.vnc/
$ vi xstartup
$ chmod +x xstartup
~/.vnc/xstartup
#! /bin/sh
gnome-session &
ファイヤーフォールの設定
VNCサーバとクライアントPC(windows10)の通信を許可するためパケットフィルタリングを設定をします。
# firewall-cmd --permanent --zone=public --add-service=vnc-server
もしくは以下の様に、リッチ言語(—add-rich-rule)を使用して接続を許可するクライアントPC(特定のネットワーク)をIPアドレスやサブネットで設定することも可能です。
例:192.168.1.1 or 192.168.1.0/24
# firewall-cmd —permanent —add-rich-rule=‘rule family=ipv4 service name=vnc-server source address=“192.168.1.0/24” accept’
上記の例ではvnc-serverサービスにネットワーク192.168.1.0/24からの接続を許可しています。
ここまでのパケットフィルタリング設定の確認# firewall-cmd --permanent --list-all
public (default)
interfaces:
sources:
services: vnc-server
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.000.0.0/24" service name="vnc-server" accept
servicesに「vnc-server」があれば設定はOKです。
パケットフィルタリングルールを反映# firewall-cmd --reload
VNCサービスの起動
サービスを起動# systemctl start vncserver@:1.service
サービスの現状態の確認
# systemctl is-active vncserver@:1.service
activeと表示されたら稼働中!
サービスの自動起動有効
# systemctl enable vncserver@:1.service
サービスのシステム起動時の状態を確認
# systemctl is-enabled vncserver@:1.service
enabledなら有効!
VNCクライアントから接続
クライアントPC(windows10)からVNCサーバ(CentOS7サーバ)へ接続するためのVNCクライアントソフトウェア(TigerVNC)を利用してGUI接続をします。
TigerVNCのインストール
TigerVNC http://tigervnc.org/画面上部の「Releases」をクリック。
https://bintray.com/tigervnc/stable/tigervnc/1.6.0をクリック。
「tigervnc-1.6.0.exe」をクリックしてダウンロードします。
TigerVNCを起動
インストールが完了後、デスクトップのアイコンか「スタート」から「Tiger VNC Viewer」を選択して起動しましょう。
起動後はVNCサーバ(CentOS7サーバ)の「IPアドレス(192.000.0.000):ポート番号(5901)」を入力して「Connect」をクリックします。
$ vncpasswdで設定したVNCユーザのパスワードを入力します。
「OK」クリックします。
これで、クライアントPC(windows10)からサーバ(CentOS7)へGUI画面のリモート接続ができるようになりました。
あとは通常通りデスクトップ環境と同じ様にログインして操作しましょう!