- いろんなサイトを見ても途中経過が記載してなく不安になる人
- 操作通りしたが動かない人
- バージョンが古いやんかと思った人
インストールするソフトとバージョン tigervnc-server Ver 1.8.0
前提条件
GNOME Desktop がインストールされていること
VNCパッケージをインストール
root権限で行ってください。
yum install tigervnc-server のコマンドでインストールします。
[root@localhost ~]# yum install tigervnc-server
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* extras: mirrors.cat.net
* updates: mirrors.cat.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ tigervnc-server.x86_64 0:1.8.0-22.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==============================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
==============================================================================================================
インストール中:
tigervnc-server x86_64 1.8.0-22.el7 updates 211 k
トランザクションの要約
==============================================================================================================
インストール 1 パッケージ
総ダウンロード容量: 211 k
インストール容量: 498 k
Is this ok [y/d/N]: y
Downloading packages:
tigervnc-server-1.8.0-22.el7.x86_64.rpm | 211 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : tigervnc-server-1.8.0-22.el7.x86_64 1/1
検証中 : tigervnc-server-1.8.0-22.el7.x86_64 1/1
インストール:
tigervnc-server.x86_64 0:1.8.0-22.el7
完了しました!
[root@localhost ~]#
VNCサーバの設定
下記のコマンドを実行し、設定ファイルをコピーします。
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:3.service
今回はvncserver@:3.serviceなのでポート番号は5903となります。
vi /lib/systemd/system/vncserver@:3.service のコマンドで修正します。
”<USER>” の部分をVNCでログインするユーザー名(今回の場合は”shimaichi”)に変更します。
変更前の内容
[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 <USER> %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
変更後の内容
[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 shimaichi %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
パスワード設定
shimaichiユーザーのVNCログイン用のパスワードを設定するために
shimaichiユーザへ移動してパスワードを設定します。
参照のみのパスワードを入力しますか?と問われます。
ここは「y」で行きましょう。
次に su コマンドでroot権限に戻しときましょう。
[root@localhost ~]# su shimaichi
[shimaichi@localhost root]$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
[shimaichi@localhost root]$
[shimaichi@localhost root]$ su
パスワード:
[root@localhost ~]#
VNC デスクトップサイズ変更
VNC デスクトップのデフォルトサイズは 1024×768なので変更する場合は、
/usr/bin/vncserver_wrapper のファイルを修正する必要がありますのでバックアップしときましょう。
下記のコピーコマンドを実行し、設定ファイルをバックアップします。
cp /usr/bin/vncserver_wrapper /usr/bin/vncserver_wrapper.org
vi /usr/bin/vncserver_wrapper のコマンドで修正します。
赤字の部分を追加します。
#!/bin/sh
USER="$1"
INSTANCE="$2"
die() {
echo "FATAL: ${@:-}" >&2
exit 2
}
cleanup() {
[ -n "$VNCPID" ] || return
if kill -0 $VNCPID 2>/dev/null; then
kill $VNCPID
fi
}
trap cleanup TERM INT HUP
[ -n "$USER" -a -n "$INSTANCE" ] || die "Invalid usage!"
/usr/sbin/runuser -l "$USER" -c "/usr/bin/vncserver ${INSTANCE} -geometry 1920x1080"
[ $? -eq 0 ] || die "'runuser -l $USER' failed!"
# Wait up to 5 seconds for vncserver to be up
for tries in $(seq 1 50); do
[ -e "~$USER/.vnc/$(hostname)${INSTANCE}.pid" ] && break
sleep 0.1
done
eval HOME=~$USER
VNCPID=$(cat "$HOME/.vnc/$(hostname)${INSTANCE}.pid" 2>/dev/null || true)
[ -n "$VNCPID" ] || die "'vncserver ${INSTANCE}' failed to start after 5 seconds!"
echo "'vncserver ${INSTANCE}' has PID $VNCPID, waiting until it exits ..."
while kill -0 $VNCPID 2>/dev/null; do
sleep 5
done
echo "PID $VNCPID exited, exiting ..."
設定を反映
設定ファイルの再読み込み
systemctl daemon-reload
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]#
再起動
systemctl restart vncserver@:3
[root@localhost ~]# systemctl restart vncserver@:3
[root@localhost ~]#
自動起動の設定
systemctl enable vncserver@:3.service
[root@localhost ~]# systemctl enable vncserver@:3.service
[root@localhost ~]#
ステータス確認
systemctl status vncserver@:3.service
ファイヤーフォールの設定
ファイヤーフォールの追加をしてから、ファイヤーフォールの再読み込みを行ってください。
ファイヤーフォールサービスの削除も載せておきます。
ファイヤーフォールサービスの追加
firewall-cmd –permanent –zone=public –add-service=vnc-server
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=vnc-server
ファイヤーフォールの再読み込み
firewall-cmd –reload
[root@localhost ~]# firewall-cmd --reload
ファイヤーフォールサービスの削除
firewall-cmd –permanent –zone=public –remove-service=vnc-server
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-service=vnc-server
接続確認
Macの場合は、「サーバへ接続」をクリック
下記の画面のように vnc://<IPアドレス>:5903と入力して「接続」をクリック
パスワードを入力して「サインイン」をクリック
左画面は、ログイン画面です。右画面がログイン後の画面です。
まとめ
画面サイズが大きくできなかったのでvncserver_wrapperのファイルを見て変更することができて良かったです。
インターネットで調べても載ってなかったので少し時間を費やした。
とても為になるブログをありがとうございます。
ファイアウォール設定のところで
firewall-cmd –permanent –add-service=vnc-server
のように、ハイフン2つを使う必要があるようです。
すみません、書いた時には正しくハイフン2つが入っていたのですが、出力からは消えていますね・・
有り難うございます。
ハイホン2つが正く表示されなくて申し訳ございません。