$ sudo dnf install tigervnc-server
メタデータの期限切れの最終確認: 0:16:48 時間前の 2022年08月28日 04時04分24秒 に実施しました。 依存関係が解決しました。 ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================================== インストール: tigervnc-server x86_64 1.12.0-6.fc36 updates 259 k 依存関係のインストール: tigervnc-selinux noarch 1.12.0-6.fc36 updates 24 k トランザクションの概要 ======================================================================================================================== インストール 2 パッケージ ダウンロードサイズの合計: 284 k インストール後のサイズ: 682 k これでよろしいですか? [y/N]: y パッケージのダウンロード: (1/2): tigervnc-selinux-1.12.0-6.fc36.noarch.rpm 32 kB/s | 24 kB 00:00 (2/2): tigervnc-server-1.12.0-6.fc36.x86_64.rpm 70 kB/s | 259 kB 00:03 ------------------------------------------------------------------------------------------------------------------------ 合計 60 kB/s | 284 kB 00:04 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 scriptletの実行中: tigervnc-selinux-1.12.0-6.fc36.noarch 1/2 インストール中 : tigervnc-selinux-1.12.0-6.fc36.noarch 1/2 scriptletの実行中: tigervnc-selinux-1.12.0-6.fc36.noarch 1/2 インストール中 : tigervnc-server-1.12.0-6.fc36.x86_64 2/2 scriptletの実行中: tigervnc-server-1.12.0-6.fc36.x86_64 2/2 検証 : tigervnc-selinux-1.12.0-6.fc36.noarch 1/2 検証 : tigervnc-server-1.12.0-6.fc36.x86_64 2/2 インストール済み: tigervnc-selinux-1.12.0-6.fc36.noarch tigervnc-server-1.12.0-6.fc36.x86_64 完了しました!
$ firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh
$ cat /usr/lib/firewalld/services/vnc-server.xml
Virtual Network Computing Server (VNC)
A VNC server provides an external accessible X session. Enable this option if you plan to provide a VNC server with direct access. The access will be possible for displays :0 to :3. If you plan to provide access with SSH, do not open this option and use the via option of the VNC viewer.
$ sudo firewall-cmd --permanent --add-service=vnc-server
success
$ sudo firewall-cmd --reload
success
$ firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh vnc-server
$ cat << "EOF" | sudo tee -a /etc/tigervnc/vncserver-config-defaults session=gnome geometry=1366x768 EOF
session=gnome geometry=1366x768
$ echo ":1=tomoyan" | sudo tee -a /etc/tigervnc/vncserver.users
:1=tomoyan
$ vncpasswd
Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used
$ sudo systemctl enable --now vncserver@:1 $ systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2022-10-07 10:26:31 JST; 1min 29s ago Process: 2756 ExecStartPre=/usr/libexec/vncsession-restore :1 (code=exited, status=0/SUCCESS) Process: 2768 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS) Main PID: 2775 (vncsession) Tasks: 0 (limit: 19016) Memory: 1016.0K CPU: 38ms CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ‣ 2775 /usr/sbin/vncsession tomoyan :1 10月 07 10:26:31 WICKED-BEAT systemd[1]: Starting vncserver@:1.service - Remote desktop service (VNC)... 10月 07 10:26:31 WICKED-BEAT systemd[1]: Started vncserver@:1.service - Remote desktop service (VNC).
$ systemctl status vncserver@:1.service ● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; preset: disabled) Active: inactive (dead) since Sat 2023-03-04 16:24:58 JST; 25s ago Duration: 1.083s Process: 3001 ExecStartPre=/usr/libexec/vncsession-restore :1 (code=exited, status=0/SUCCESS) Process: 3010 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS) Main PID: 3017 (code=exited, status=0/SUCCESS) CPU: 56ms 3月 04 16:24:57 highway-x.fireball.local systemd[1]: Starting vncserver@:1.service - Remote desktop service > 3月 04 16:24:57 highway-x.fireball.local systemd[1]: Started vncserver@:1.service - Remote desktop service (> 3月 04 16:24:58 highway-x.fireball.local systemd[1]: vncserver@:1.service: Deactivated successfully.
$ vncpasswd
Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used
$ sudo systemctl start vncserver@:1 $ systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; preset: disabled) Active: active (running) since Sat 2023-03-04 16:31:50 JST; 3s ago Process: 3220 ExecStartPre=/usr/libexec/vncsession-restore :1 (code=exited, status=0/SUCCESS) Process: 3232 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS) Main PID: 3239 (vncsession) Tasks: 0 (limit: 9402) Memory: 1.0M CPU: 67ms CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ‣ 3239 /usr/sbin/vncsession tomoyan :1 3月 04 16:31:50 highway-x.fireball.local systemd[1]: Starting vncserver@:1.service - Remote desktop service > 3月 04 16:31:50 highway-x.fireball.local systemd[1]: Started vncserver@:1.service - Remote desktop service (>
$ sudo yum install xinetd
- リモートデスクトップ(vnc)のパッケージをインストールする。\\ **CentOS**
$ sudo yum install vnc vnc-server
**Fedora**\\ $ sudo yum install tigervnc-server-minimal
メタデータの期限切れの最終確認: 3:23:49 時間前の 2022年08月28日 00時36分21秒 に実施しました。 パッケージ tigervnc-server-minimal-1.12.0-6.fc36.x86_64 は既にインストールされています。 依存関係が解決しました。 行うべきことはありません。 完了しました!
$ sudo vi /etc/services
vncserver 5900/tcp # VNC Server
- スーパサーバーが起動するプログラムを設定するために、以下の設定ファイルを作成する。\\
$ sudo vi /etc/xinetd.d/vncserver
service vncserver
{
disable = no
nice = 10
flags = REUSE
socket_type = stream
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1600x960 -depth 16 --securitytypes=none
log_on_success += DURATION
log_on_failure += HOST
}
**注意:**\\ service vncserver の部分は /etc/services に追記したサービス名と一致していなければならない。\\ 画面サイズ 1600x960 はお好みに応じて変更してください。
- vnc のパスワードファイルを作成する。
$ sudo vncpasswd /etc/vncserver_passwd
Password: <-- パスワードを入力
Verify: <-- パスワードを入力
- Xvnc がパスワードファイルを参照できるようにパーミッションを設定する。
$ sudo chmod 644 /etc/vncserver_passwd
- GDM(Gnome Display Manager)の設定を変更するために、以下の設定ファイルを修正する。(該当セクションに以下の内容を追記)\\
$ sudo vi /etc/gdm/custom.conf
[daemon]
RemoteGreeter=/usr/libexec/gdmgreeter
[xdmcp]
Enable=true # XDM認証有効化
おすすめしないが、管理者ログインを許可したいのなら以下の設定を追加する。\\
[security]
AllowRemoteRoot=true
Fedoraの場合は以下のように修正する。
[security]
DisallowTCP=false
[xdmcp]
Enable=true # XDM認証有効化
- サービスのポートをファイヤウォールで許可するために、以下の設定ファイルを修正する。\\ /etc/sysconfig/iptables (行追加)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
- OS 起動時にスーパーサーバーが自動起動するように、以下のコマンドを実行する。\\
$ sudo chkconfig xinetd on
- 設定の変更を反映させるために、以下のコマンドを実行する。\\ CentOS6、Fedoraの場合
$ sudo restart prefdm
$ sudo service xinetd restart
$ sudo service iptables restart
CentOS 5 の場合はrestart prefdmではなく以下を実行する。
$ sudo gdm-restart
$ sudo service xinetd restart
$ sudo service iptables restart
Fedora 16
$ sudo systemctl restart xinetd.service
Fedora 18 以降
$ sudo systemctl restart gdm.service
- クリップボードを共有するために、ユーザーがログオンした際に以下のコマンドが自動実行されるように設定する。\\ メニューより [システム]-[設定]-[他の個人設定]-[セッション] を開いて、自動起動するプログラムに以下のコマンドを追加する。
vncconfig -nowin
==== トラブルシューティング ====
**CentOS 6で以下のようなトラブルが発生する場合:**\\
* vnc 経由で管理者権限を必要とするアプリケーションが起動しない。
* スーパーユーザーでアプリケーションを実行すると以下のエラーが発生する。\\
No protocol specified
Could not parse arguments: ディスプレイをオープンできません:
**解決方法:**\\
- /etc/X0.hosts を作成してホスト名を追加する。\\ ※"green.fireball.local:1.0" の場合は X1.hosts のようにディスプレイ番号に応じて作成する必要がある。
$ sudo vi /etc/X0.hosts
/etc/X0.hosts の内容
localhost
- prefdm を再起動する。
$ sudo restart prefdm
**CentOS 5で以下のようなトラブルが発生する場合:**\\
* vnc 経由で管理者権限を必要とするアプリケーションが起動しない。
* スーパーユーザーでアプリケーションを実行すると以下のエラーが発生する。\\
Xlib: connection to "green.fireball.local:0.0" refused by server
Xlib: No protocol specified
**解決方法:**\\
- /etc/X0.hosts を作成してホスト名を追加する。\\ ※"green.fireball.local:1.0" の場合は X1.hosts のようにディスプレイ番号に応じて作成する必要がある。
$ sudo vi /etc/X0.hosts
/etc/X0.hosts の内容
green.fireball.local
- gdm を再起動する。
$ sudo gdm-restart
===== Xvnc+xinetd でセッション保持設定 =====
リモートサーバーに接続して長時間処理などを実行しておきたい場合は、Xvnc のセッションが保持されるように設定しておくと便利である。\\
以下では前述の設定に追記することを前提に説明する。\\
==== 設定と反映 ====
- セッション保持用のサービスのポートを指定するために、以下の設定ファイルを修正する。\\
$ sudo vi /etc/services (行追加)
vncsrvkeep01 5901/tcp # VNC Server(keep session 01)
vncsrvkeep02 5902/tcp # VNC Server(keep session 02)
vncsrvkeep03 5903/tcp # VNC Server(keep session 03)
vncsrvkeep04 5904/tcp # VNC Server(keep session 04)
vncsrvkeep05 5905/tcp # VNC Server(keep session 05)
- スーパサーバーが起動するプログラムを設定するために、以下の設定ファイルを修正する。\\
$ sudo vi /etc/xinetd.d/vncserver (設定追加)
service vncsrvkeep01
{
disable = no
nice = 10
flags = REUSE
socket_type = stream
wait = yes
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1600x960 -depth 16 --PasswordFile=/etc/vncserver_passwd
log_on_success += DURATION
log_on_failure += HOST
}
service vncsrvkeep02
{
disable = no
nice = 10
flags = REUSE
socket_type = stream
wait = yes
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1600x960 -depth 16 --PasswordFile=/etc/vncserver_passwd
log_on_success += DURATION
log_on_failure += HOST
}
service vncsrvkeep03
{
disable = no
nice = 10
flags = REUSE
socket_type = stream
wait = yes
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1600x960 -depth 16 --PasswordFile=/etc/vncserver_passwd
log_on_success += DURATION
log_on_failure += HOST
}
service vncsrvkeep04
{
disable = no
nice = 10
flags = REUSE
socket_type = stream
wait = yes
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1600x960 -depth 16 --PasswordFile=/etc/vncserver_passwd
log_on_success += DURATION
log_on_failure += HOST
}
service vncsrvkeep05
{
disable = no
nice = 10
flags = REUSE
socket_type = stream
wait = yes
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1600x960 -depth 16 --PasswordFile=/etc/vncserver_passwd
log_on_success += DURATION
log_on_failure += HOST
}
**注意:**\\ service vncsrvkeep01~05 の部分は /etc/services に追記したサービス名と一致していなければならない。\\ 画面サイズ 1600x960 はお好みに応じて変更してください。
- vnc のパスワードファイルを作成する。
$ sudo vncpasswd /etc/vncserver_passwd
Password: <-- パスワードを入力
Verify: <-- パスワードを入力
- Xvnc がパスワードファイルを参照できるようにパーミッションを設定する。
$ sudo chmod 644 /etc/vncserver_passwd
- サービスのポートをファイヤウォールで許可するために、以下の設定ファイルを修正する。\\ CentOS
$ sudo vi /etc/sysconfig/iptables (行修正)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5905 -j ACCEPT
Fedora
$ sudo firewall-cmd --permanent --add-port=5901-5905/tcp
- 設定の変更を反映させるために、以下のコマンドを実行する。\\ CentOS
$ sudo gdm-restart
$ sudo service xinetd restart
$ sudo service iptables restart
Fedora
$ sudo systemctl restart gdm.service
$ sudo systemctl restart xinetd.service
$ sudo firewall-cmd --reload
===== VNCサーバの設定(vncserver サービス編) =====
この方法では、ユーザー1人につきポート5901より1ポートを消費します。また、VNCSERVERARGSの定義数が増えるとメモリーを多く消費します。\\
==== 設定ファイルの修正 ====
/etc/sysconfig/vncservers の以下の箇所を参考に最終行に設定を追加
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERVERS="1:tomoyan 2:hogehoge"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -nohttpd"
VNCSERVERARGS[2]="-geometry 1280x1024 -nolisten tcp -nohttpd"
-localhost オプションが指定されているとリモートから接続することができないので注意。\\
==== VNCSERVERS ====
VNCSERVERS="ディスプレイ番号: ユーザ名"
==== VNCSERVERARGS ====
VNCSERVERARGS[ディスプレイ番号]="-geometry 1024x768 -nolisten tcp -nohttpd"
==== VNCパスワードの設定 ====
$ su - tomoyan
パスワード:
$ vncpasswd
Password:
Verify:
$ su - hogehoge
パスワード:
$ vncpasswd
Password:
Verify:
==== VNCサーバの起動とウィンドウマネージャの設定 ====
$ su -
パスワード:
# service vncserver start
VNC サーバー を起動中: 1:tomoyan
VNC サーバー を起動中: 2:hogehoge
~省略~
VNCサーバが起動すると以下の設定ファイルが作成されるので設定を変更する。\\
/home/tomoyan/.vnc/xstartup\\
#vncconfig -iconic &
vncconfig -nowin &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# twm & → 最終行の twm & をコメントアウト
gnome-session & # → gnomeを起動するように変更
/home/hogehoge/.vnc/xstartup も同様に修正する。\\
VNCサーバを再起動すると設定が反映される。\\
# service vncserver restart
==== ファイアウォールの設定 ====
VNCサーバを利用するには以下のポートの開放が必要である。\\
tcp port 5900 マシン コンソールに接続する場合
tcp port 5901 ディスプレイ番号:1 に接続する場合
tcp port 5902 ディスプレイ番号:2 に接続する場合
...
===== 参考文献 =====
[[https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-tigervnc|第13章 TigerVNC Red Hat Enterprise Linux 7 | Red Hat Customer Portal]]\\
[[https://www.server-world.info/query?os=Fedora_34&p=desktop&f=6|Fedora 34 : VNC サーバーの設定 : Server World]]\\
[[qita>taconana/items/8a9b07ea686d68587281|CentOS8.3でVNCサーバをセットアップする手順 - Qiita]]\\
[[http://mo.kerosoft.com/0123|VNC Serverをxinetd経由で立てる方法 [Fedora 10] - Kerosoft : Modus Operandi]]\\
[[http://iseebi.half-done.net/?TechDoc%2FRemoteDesktopWithxinetd|伊勢的新常識 - xinetd + VNC でリモートデスクトップ]]\\
[[http://qx-xp.net/VNCserver.aspx|VNC-server]]\\
[[http://www.fedoraforum.org/forum/archive/index.php/t-1606.html|Vnc & Gdm [Archive] - FedoraForum.org]]\\
[[http://codeghar.wordpress.com/2009/06/11/remote-login-with-gdm-and-vnc-on-fedora-11/|Remote Login with GDM and VNC on Fedora 11 << Code Ghar]]\\