CentOS6のときは苦労した気がしたが、今回は、こちらのサイト「手間ひまかけて楽をする」に記載の手順に基づき行った。
参考:さくらのVPS(CentOS7)にXfceをインストールしてVNCでリモート接続する
1.Xfceのインストール
# yum groupinstall Xfce
さくらのVPSでCentOS7の標準インストールをした場合、Epelリポジトリがすでに追加されているので、いきなりyumでXfceインストールが可能とのこと。 やってみると問題なく入った。
尚、こちらの手順も終わらせておけば、直ぐにX Windows Systemを試すことができるので、おすすめ。
・「Teratermでのリモートコンソール関係」
・「VNCserverサービスの設定」
2.Teratermでのリモートコンソール関係
以下の手順で、段階を踏みながらTeratermでのリモートコンソールの設定を済ませること。
1.プレインテキストによるssh接続
2.公開鍵認証によるssh接続
3.sshポート変更とfirewallの設定
4.sshポートフォワーディング
自分の場合、途中3の段階でポート変更とfirewallの設定を同時に行ったため、整合が取れなくなったのか変更したポートと接続ができなくなったが、sshポート変更とfirewallの設定を分けて行うことでなんとか繋がった。
3.VNCserverサービスの設定
詳細は、別途VNCserverサービスによる。
(1)VNCserverパッケージのインストール
# yum install tigervnc-server
(2)VNCserverのUnit定義ファイル作成
インストール後、/lib/systemd/system/にあるvncserver@.serviceを/etc/systemd/systemにコピー
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
(3)各ユーザー用のUnit定義ファイルの作成
さらに、このvncserver@.serviceをコピーして、各ユーザー用の定義ファイルを作成する。
# cp /etc/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# cp /etc/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
/etc/systemd/system/vncserver@:1.service ← tako アカウント用
/etc/systemd/system/vncserver@:2.service ← ika アカウント用
(4)各ユーザー用のUnitファイルの修正
修正するのは<USER>の部分をtakoにするだけ
# vi /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper tako %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
(5)VNCserverのパスワード設定
takoユーザーのVNCログイン用のパスワードを設定する。 通常のログインパスワードと異なっていても問題ない。
# su tako
$ vncpasswd
このとき通常のパスワード入力に続けて聞かれるview-only passwordというのは表示のみで操作できないモード用のパスワードのこと。 必要がなければnoで良い。
(6)VNCserverサービスの起動
root権限に戻り、systemctlコマンドでVNCserverサービスの有効化と起動を行う。
設定ファイルの再読込
# systemctl daemon-reload
各アカウント用の vncserver サービスを起動します。
# systemctl start vncserver@:1.service
サービスとして起動時に立ち上げるには
# systemctl enable vncserver@:1.service
※ただ「systemctl enable vncserver@:1.service」はサーバーのリソースをそれなりに消費するので注意が必要。 起動しているかを確かめるには
# systemctl status vncserver@:1.service
これで次のように active がでれば問題なく動作している。
* vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-01-19 16:42:45 JST; 4 days ago
Main PID: 981 (vncserver_wrapp)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
(7)xstartupファイルの確認
vncserver@:1.serviceが無事active (running)になっていれば、/home/user/.vncフォルダ(今回は/home/tako/.vnc)に xstartup、ログファイル(*.log)、pidファイル(*.pid)、configファイル等が今までのpasswdに加え作成されているので、このスタータップの設定ファイル「xstartup」を開く。
細かい設定はよく分からないのが取りあえず、/etc/X11/xinit/xinitrcが起動ファイルらしいことは分かった。
このファイルを修正してカスタマイズするようにと記載したサイトもあるのだが、今回はこのままでいくことに。
vi /home/user/.vnc/xstartup
!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/etc/X11/xinit/xinitrc
# Assume either Gnome or KDE will be started by default when installed
# We want to kill the session automatically in this case when user logs out. In case you modify
# /etc/X11/xinit/Xclients or ~/.Xclients yourself to achieve a different result, then you should
# be responsible to modify below code to avoid that your session will be automatically killed
if [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; then
vncserver -kill $DISPLAY
fi
いよいよ次の「VNC Viewerの設定」で、X Windows での接続を目指す。