Problem

Fedora 26 ServerGNOMEをインストールした後です。
ちなみに、GNOMEのインストールは、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ su -
# SELINUX=enforcing を SELINUX=disabled に変更
$ vi /etc/sysconfig/selinux
$ reboot
$ sestatus
SELinux status: disabled
# GNOMEのインストール
$ sudo dnf -y group install "Fedora Workstation"
$ echo "exec /usr/bin/gnome-session" >> ~/.xinitrc
$ sudo systemctl set-default graphical.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target.
$ systemctl get-default
graphical.target
$ systemctl -f enable gdm.service
Created symlink /etc/systemd/system/display-manager.service → /usr/lib/systemd/system/gdm.service.
$ systemctl restart gdm.service

途中でさらっと流していますが、SELinuxの無効化が大事です。

Solution

Install

1
2
3
4
5
$ sudo dnf install tigervnc-server
$ sudo firewall-cmd --add-service=vnc-server --permanent
success
$ sudo firewall-cmd --reload
success

Test

一度、起動してみて、繋がるかどうかを確認します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 初回起動時にパスワードの設定と各種設定の自動実行
$ vncserver

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

New 'XXXXXX-YYYYYY:1 (xxxxxx)' desktop is XXXXXX-YYYYYY:1

Creating default startup script /home/xxxxxx/.vnc/xstartup
Creating default config /home/xxxxxx/.vnc/config
Starting applications specified in /home/xxxxxx/.vnc/xstartup
Log file is /home/xxxxxx/.vnc/XXXXXX-YYYYYY:1.log

# 起動
$ vncserver

Other

自動起動の設定を行います。
まず設定ファイルを作成。

1
2
$ sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
$ sudo vi /etc/systemd/system/vncserver@:1.service

ファイル中の、という文字列をユーザー名で置換します。

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl enable vncserver@:1.service
$ sudo systemctl start vncserver@:1.service

この時、すぐに応答が帰ってこず、エラーが表示された場合、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ sudo systemctl status vncserver@\:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Thu 2017-08-17 09:20:55 JST; 1min 25s ago
Process: 3039 ExecStart=/usr/bin/vncserver :1 (code=exited, status=0/SUCCESS)
Process: 3034 ExecStartPre=/usr/bin/vncserver -kill :1 (code=exited, status=0/SUCCESS)

8月 17 09:20:52 XXXXXX-YYYYYY tracker-miner-fs.desktop[3373]: Received signal:15->'Terminated'
8月 17 09:20:52 XXXXXX-YYYYYY tracker-extract.desktop[3371]: Received signal:15->'Terminated'
8月 17 09:20:52 XXXXXX-YYYYYY tracker-miner-user-guides.desktop[3374]: Received signal:15->'Termina
8月 17 09:20:52 XXXXXX-YYYYYY tracker-miner-user-guides.desktop[3374]: OK
8月 17 09:20:52 XXXXXX-YYYYYY tracker-miner-apps.desktop[3372]: Received signal:15->'Terminated'
8月 17 09:20:52 XXXXXX-YYYYYY tracker-miner-apps.desktop[3372]: OK
8月 17 09:20:52 XXXXXX-YYYYYY tracker-miner-fs.desktop[3373]: OK
8月 17 09:20:55 XXXXXX-YYYYYY systemd[1]: Failed to start Remote desktop service (VNC).
8月 17 09:20:55 XXXXXX-YYYYYY systemd[1]: vncserver@:1.service: Unit entered failed state.
8月 17 09:20:55 XXXXXX-YYYYYY systemd[1]: vncserver@:1.service: Failed with result 'timeout'.

起動がタイムアウトしている場合があります。
どうもSELinuxが悪さをしている感じがしました。OS再インストール後、SELinuxを無効化してから実行したら、この現象は発生しませんでした。

ただ、OS起動時のVNC自動起動で接続してもカーソルが表示されない状態になってしまって使い物になりません。

OS起動後、手動でvncserverで起動した場合は、正しく接続できましたので、しばらくはこれで対応します。

ですので、

1
$ sudo systemctl disable vncserver@:1.service

で、自動起動を無効にしました。