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サーバのディレクトリ構成

vncserver_directory

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を実行し設定を反映
# 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のインストール

img_tigervnc_install_001 TigerVNC http://tigervnc.org/

画面上部の「Releases」をクリック。

img_tigervnc_install_002

https://bintray.com/tigervnc/stable/tigervnc/1.6.0をクリック。

img_tigervnc_install_003

「tigervnc-1.6.0.exe」をクリックしてダウンロードします。

TigerVNCを起動

インストールが完了後、デスクトップのアイコンか「スタート」から「Tiger VNC Viewer」を選択して起動しましょう。

img_tigervnc_login

起動後はVNCサーバ(CentOS7サーバ)の「IPアドレス(192.000.0.000):ポート番号(5901)」を入力して「Connect」をクリックします。

img_tigervnc_pass

$ vncpasswdで設定したVNCユーザのパスワードを入力します。
「OK」クリックします。

img_tigervnc

これで、クライアントPC(windows10)からサーバ(CentOS7)へGUI画面のリモート接続ができるようになりました。
あとは通常通りデスクトップ環境と同じ様にログインして操作しましょう!

コメントを残す