初心者向け CentOS7.9にVNCサーバ (tigervnc-server) 構築

https://shimaichi.blog/centos7-tigervnc-server/

前提条件

GNOME Desktop がインストールされていること

VNCパッケージをインストール

root権限で行ってください。

yum install tigervnc-server のコマンドでインストールします。

実際のコマンド
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[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権限に戻しときましょう。

実際のコマンド
1
2
3
4
5
6
7
8
9
10
11
[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

実際のコマンド
1
2
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]#

再起動

systemctl restart vncserver@:3

実際のコマンド
1
2
[root@localhost ~]# systemctl restart vncserver@:3
[root@localhost ~]#

自動起動の設定

systemctl enable vncserver@:3.service

実際のコマンド
1
2
[root@localhost ~]# systemctl enable vncserver@:3.service
[root@localhost ~]#

ステータス確認

systemctl status vncserver@:3.service

 

ファイヤーフォールの設定

ファイヤーフォールの追加をしてから、ファイヤーフォールの再読み込みを行ってください。

ファイヤーフォールサービスの削除も載せておきます。

ファイヤーフォールサービスの追加

firewall-cmd –permanent –zone=public –add-service=vnc-server

 

ファイヤーフォールの再読み込み

firewall-cmd –reload

 

ファイヤーフォールサービスの削除

firewall-cmd –permanent –zone=public –remove-service=vnc-server

 

接続確認

Macの場合は、「サーバへ接続」をクリック

下記の画面のように vnc://<IPアドレス>:5903と入力して「接続」をクリック

パスワードを入力して「サインイン」をクリック

左画面は、ログイン画面です。右画面がログイン後の画面です。

 

まとめ

画面サイズが大きくできなかったのでvncserver_wrapperのファイルを見て変更することができて良かったです。

インターネットで調べても載ってなかったので少し時間を費やした。

 

 
インフラエンジニアを目指す方へ





RELATED POST
  • CentOS

    初心者向け CentOS7.9 に VirtualBox をインストール

    2021年8月14日
  • CentOS

    初心者向け CentOS7.9 に PHP8.0をインストール

    2021年7月3日
  • CentOS

    CentOS7にphpVirtualBoxを設定してWeb管理

    2022年2月20日
  • CentOS

    CentOS 7.9 Minimal インストール

    2021年8月15日
  • CentOS

    phpMyAdminエラー 1282

    2021年6月5日
  • CentOS

    初心者向け CentOS7.9 に MariaDB 10.6.4をインストール

    2021年11月8日
  • CentOS

    初心者向け CentOS7.9 に VirtualBox をインストール

    2021年8月14日
  • CentOS

    初心者向け CentOS7.9 に PHP8.0をインストール

    2021年7月3日
  • CentOS

    CentOS7にphpVirtualBoxを設定してWeb管理

    2022年2月20日
  • CentOS

    CentOS 7.9 Minimal インストール

    2021年8月15日
  • CentOS

    phpMyAdminエラー 1282

    2021年6月5日
  • CentOS

    初心者向け CentOS7.9 に MariaDB 10.6.4をインストール

    2021年11月8日
 
 
 
 

COMMENT

 
posted @ 2023-02-08 11:53  GaoYanbing  阅读(12)  评论(0编辑  收藏  举报