仮想ネットワークコンピューティング(VNC)は、ローカルのキーボードとマウスを使用して別のコンピューターをリモート制御できるグラフィカルなデスクトップ共有システムです。
この記事では、CentOS8にVNCをインストールして構成する方法の手順について説明します。 SSHトンネルテクノロジーを介してVNCサーバーに安全に接続する方法を紹介します。
このガイドを続けるには、sudo権限を持つユーザーとしてリモートCentOSマシンにログインする必要があります。
通常、サーバーにはデスクトップ環境がインストールされていません。 GUIのないマシンを使用している場合、最初のステップはそれをインストールすることです。それ以外の場合は、この手順をスキップしてください。
次のコマンドを実行して、CentOS8のデフォルトのデスクトップ環境であるリモートマシンにGnomeをインストールします。
sudo dnf groupinstall "Server with GUI"
システムによっては、Gnomeパッケージ、および依存パッケージのダウンロードとインストールに時間がかかります。
[ TigerVNC](http://tigervnc.org/)は、積極的に保守されているオープンソースの高性能VNCサーバーです。デフォルトのCentOSソースリポジトリで利用できます。次のコマンドを入力してインストールします。
sudo dnf install tigervnc-server
VNCサーバーをインストールしたら、 vncserver
コマンドを実行して初期設定を作成し、パスワードを設定します。次のコマンドを実行するときは、 sudo
を使用しないでください。
vncserver
パスワードの入力と確認、および表示専用パスワードを設定するかどうかを確認するメッセージが表示されます。表示専用パスワードを設定することを選択した場合、ユーザーはキーボードとマウスを介してVNCインスタンスと対話できなくなります。
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password(y/n)? n
/usr/bin/xauth: file /home/linuxize/.Xauthority does not exist
New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com
Starting applications specified in/etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log
初めて vncserver
コマンドを実行すると、パスワードファイルが作成されて〜/ .vnc
ディレクトリに保存されます。フォルダが作成されていない場合は、最初に作成されます。
上記のホスト名の後の :1
に注意してください。これは、実行中のVNCサーバーの表示ポート番号を意味します。この例では、サーバーはTCPポート 5901
(5900 + 1)で実行されています。 2番目のインスタンスを作成すると、次の空きポートで実行されます。たとえば、 :2
は、サーバーがポート番号 5902
(5900 + 2)で実行されていることを意味します。
VNCサーバーを使用する場合、最も重要な点は、 :X
はポート番号、つまり 5900 + X
を表示することを意味するということです。
次の手順に進む前に、最初の手順は、 -kill
オプションを指定して vncserver
コマンドを使用してVNCインスタンスを停止することです。この例では、サーバーはポート番号5901( :1
)で実行されているため、サーバーを停止して実行します。
vncserver -kill :1
出力は次のとおりです。
Killing Xvnc process ID 19681
GnomeとTigerVNCの両方がリモートCentOSマシンにインストールされたので、次のステップは、Gnomeを使用するようにTigerVNCを構成することです。 VNCサーバーは、新しいデスクトップを作成するときに、 〜/ .vnc / xstartup
ファイルを使用してアプリケーションを起動します。このファイルを開きます:
vim ~/.vnc/xstartup
そして、次のように編集します。
#! /bin/sh
[- x /etc/vnc/xstartup ]&& exec /etc/vnc/xstartup
[- r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
ファイルを保存して閉じます。 TigerVNCサーバーを起動または再起動すると、上記のスクリプトが自動的に実行されます。
追加のオプションをVNCサーバーに渡す場合は、 〜/ .vnc / config
ファイルを開き、1行に1つのオプションを追加します。最も一般的に使用されるオプションがファイルにリストされています。コメントを外して、好みに合わせて変更します。
次に例を示します。
# securitytypes=vncauth,tlsvnc
# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared
ユニットファイルを使用すると、サービスを簡単に開始、停止、および再起動できます。通常、ユーザーユニットファイルを保存するのに最適な場所は 〜/ .config / systemd / user
です。フォルダを作成します。
mkdir -p ~/.config/systemd/user
デフォルトのvncserverユニットファイルをコピーします。
cp /usr/lib/systemd/user/[email protected] ~/.config/systemd/user/
新しいユーザーユニットファイルがすでに存在することをsystemdに通知します。
systemctl --user daemon-reload
VNCサービスを開始し、起動を有効にします。
systemctl --user enable vncserver@:1.service --now
@:
の後の数字 1
は、VNCサービスがリッスンする表示ポートを定義します。1
を使用します。これは、VNCサーバーが前述のポート 5901
でリッスンすることを意味します。
残留を有効にして、ユーザーがログインしていないときにユーザーサービスを開始して実行し続けることができるようにします。
loginctl enable-linger
サービスが正常に開始されたことを確認するには、次のコマンドを実行します。
systemctl --user status vncserver@:1.service
● vncserver@:1.service - Remote desktop service(VNC)
Loaded:loaded(/home/linuxize/.config/systemd/user/[email protected]; enabled; vendor preset: enabled)
Active:active(running) since Thu 2020-01-3022:14:08 UTC; 2s ago
Process:20813 ExecStart=/usr/bin/vncserver :1(code=exited, status=0/SUCCESS)
Process:20807 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1>/dev/null2>&1||:(code=exited, status=0/SUCCESS)
CGroup:/user.slice/user-1000.slice/[email protected]/vncserver.slice/vncserver@:1.service
...
VNCは暗号化プロトコルではなく、パケットスニッフィングツールによって特定および分析できます。推奨されるアクセス方法は、ローカルマシンのポート 5901
からリモートサーバーの同じポートへのSSHトンネルを作成することです。
マシンでLinux、macOS、またはその他のUnixに似たオペレーティングシステムを実行している場合は、次のsshコマンドを使用してトンネルを簡単に作成できます。
ssh -L 5901:127.0.0.1:5901-N -f -l username remote_server_ip
ユーザーパスワードの入力を求められます。
username
と server_ip_address
を自分のユーザー名とリモートサーバーのIPアドレスに置き換えることを忘れないでください。
[Putty](https://www.putty.org/)を使用して、WindowsでSSHトンネルを設定します。
Puttyを開き、[ホスト名またはIPアドレス]テキストフィールドにサーバーのIPアドレスを入力します。
「接続」メニューで「SSH」を展開し、「トンネル」を選択します。以下に示すように、テキストフィールド「ソースポート」にVNCサーバーポート( 5901
)を入力し、テキストフィールド「宛先」に「server_ip_address:5901」を入力して、「追加」ボタンをクリックします。
毎回入力する必要がないように、「セッション」ページに戻って設定を保存します。リモートサーバーにログインするには、保存したセッションを選択し、[開く]ボタンをクリックします。
リモートサーバーに接続するには、VNCビューアを開き、「localhost:5901」と入力します。
[Google Chrome](https://linuxize.com/post/how-to-install-google-chrome-web-browser-on-centos-8/)には、TigerVNC、TightVNC、RealVNC、UltraVNC、Vinagre、VNCViewerなどの任意のVNCビューアを使用できます。
TigerVNCを使用します。
プロンプトが表示されたら、パスワードを入力すると、デフォルトのGnomeデスクトップが表示されます。次のようになります。
それでおしまい!これで、ローカルマシンからキーボードとマウスを使用して、リモートデスクトップで作業できます。
リモートCentOS8マシンにVNCサーバーをセットアップして接続する方法を説明しました。
複数のユーザーのディスプレイを作成するには、同じ手順を繰り返します。初期構成を作成し、 vncserver
コマンドを使用してパスワードを設定し、別のポートで新しいサービスを作成します。
Recommended Posts