前書き
このガイドでは、Ubuntu 18.04サーバーにVNCサーバーをセットアップし、SSHトンネルを介してそのサーバーに安全に接続します。高速で軽量なリモートコントロールソフトウェアパッケージである[TightVNC](https://www.tightvnc.com/)を使用します。この選択により、低速のインターネット接続でもVNC接続がスムーズで安定します。
このチュートリアルを完了するには、次のものが必要です。
sudo
コマンドを使用できる非rootアカウントを持つUbuntu サーバーがセットアップされ、ファイアウォールがオンになっています。サーバーをお持ちでない方は、[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には、無料のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs?from=10680)を使用して実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。
VNCクライアントがインストールされているローカルコンピューターは、SSHトンネルを介したVNC接続をサポートします。
Winowsでは、[TightVNC](https://www.tightvnc.com/)、[RealVNC](https://www.realvnc.com/)、または[UltraVNC](https://www.uvnc.com/)を使用できます。
macOSでは、組み込みの[画面共有](https://support.apple.com/guide/mac-help/screen-sharing-overview-mh14066/mac)プログラムを使用するか、[RealVNC](https://www.realvnc.com/)などのクロスプラットフォームアプリケーションを使用できます。
Linuxでは、 vinagre
、 krdc
、[RealVNC](https://www.realvnc.com/)、または[TightVNC](https://www.tightvnc.com/)を含む多くのオプションから選択できます。
デフォルトでは、Ubuntu 18.04サーバーにはグラフィカルデスクトップ環境またはVNCサーバーがインストールされていないため、最初にインストールします。具体的には、最新の[Xfce](https://xfce.org/)デスクトップ環境用のソフトウェアパッケージと、公式のUbuntuリポジトリで提供されているTightVNCパッケージをインストールします。
サーバーで、パッケージリストを更新します。
sudo apt update
次に、Xfceデスクトップ環境をサーバーにインストールします。
sudo apt install xfce4 xfce4-goodies
インストールが完了したら、TightVNCサーバーをインストールします。
sudo apt install tightvncserver
インストール後にVNCサーバーの初期構成を完了するには、 vncserver
コマンドを使用して安全なパスワードを設定し、初期構成ファイルを作成します。
vncserver
コンピューターにリモートでアクセスするには、パスワードを入力して確認するように求められます。
You will require a password to access your desktops.
Password:
Verify:
パスワードの長さは6〜8文字である必要があります。 8文字を超えるパスワードは自動的に切り捨てられます。
パスワードを確認した後、表示専用のパスワードを作成することを選択できます。表示専用パスワードでログインしたユーザーは、マウスやキーボードを使用してVNCインスタンスを制御することはできません。これは、VNCサーバーを使用して他のユーザーにコンテンツをデモンストレーションする場合に便利なオプションですが、必須ではありません。
次に、プロセスはサーバーに必要なデフォルトの構成ファイルと接続情報を作成します。
Would you like to enter a view-only password(y/n)? n
xauth: file /home/sammy/.Xauthority does not exist
New 'X' desktop is your_hostname:1
Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in/home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log
次に、VNCサーバーを構成しましょう。
VNCサーバーは、起動時に実行されるコマンドを認識する必要があります。具体的には、VNCは接続するグラフィカルデスクトップを知る必要があります。
これらのコマンドは、ホームディレクトリの xstartup
の .vnc
フォルダにある設定ファイルにあります。起動スクリプトは、前の手順で vncserver
を実行したときに作成されましたが、Xfceデスクトップを起動するための独自のスクリプトを作成します。
VNCが最初にセットアップされると、ポート 5901
でデフォルトのサーバーインスタンスが起動します。このポートは* display port *と呼ばれ、VNCでは :1
と呼ばれます。 VNCは、 :2
、:3
などの他のディスプレイポートで複数のインスタンスを開始できます。
VNCサーバーの構成方法を変更するため、最初の 5901
は次のコマンドを使用して、ポートで実行されているVNCサーバーインスタンスを停止します。
vncserver -kill :1
別のPIDが表示されますが、出力は次のようになります。
Killing Xtightvnc process ID 17648
xstartup
ファイルを変更する前に、元のファイルをバックアップしてください。
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
次に、新しい xstartup
ファイルを作成し、テキストエディタで開きます。
nano ~/.vnc/xstartup
VNCサーバーを起動または再起動するたびに、このファイルのコマンドが自動的に実行されます。まだ開始されていない場合は、デスクトップ環境を開始するためにVNCが必要です。次のコマンドをファイルに追加します。
#! /bin/bash
xrdb $HOME/.Xresources
startxfce4 &
ファイル内の最初のコマンド xrdb $ HOME / .Xresources
は、VNCGUIフレームワークにサーバーユーザーの .Xresources
ファイルを読み取るように指示します。ユーザーは、端末の色、カーソルテーマ、フォントレンダリングなど、「。Xresources」でグラフィカルデスクトップの特定の設定を変更できます。 2番目のコマンドは、サーバーにXfceを起動するように指示します。ここで、サーバーを快適に管理するために必要なすべてのグラフィックソフトウェアを見つけることができます。
VNCサーバーがこの新しい起動ファイルを正しく使用できるようにするには、それを実行可能にする必要があります。
sudo chmod +x ~/.vnc/xstartup
ここで、VNCサーバーを再起動します。
vncserver
次のような出力が表示されます。
New 'X' desktop is your_hostname:1
Starting applications specified in/home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log
構成が完了したら、ローカルコンピューターからサーバーに接続しましょう。
VNC自体は、接続時にセキュリティプロトコルを使用しません。 SSHトンネルを使用してサーバーに安全に接続し、VNCクライアントに直接接続する代わりにそのトンネルを使用するように指示します。
ローカルコンピュータにSSH接続を作成して、 localhost
VNC接続に安全に転送します。これは、LinuxまたはmacOSのターミナルから次のコマンドを使用して実行できます。
ssh -L 5901:127.0.0.1:5901-C -N -l sammy your_server_ip
-L
スイッチで指定されたポートバインディング。この場合、 5901
のリモート接続用のポート 5901
をローカルコンピュータのポートにバインドします。 -C
スイッチは圧縮を有効にし、 -N
スイッチは ssh
にリモートコマンドを実行したくないことを通知します。 -l
スイッチはリモートログイン名を指定します。
sammy
と your_server_ip
をサーバーのsudonon-rootユーザー名とIPアドレスに置き換えることを忘れないでください。
グラフィカルSSHクライアント(PuTTYなど)を使用している場合は、接続IPとして your_server_ip
を使用し、プログラムのSSHトンネル設定で新しい転送ポートとして localhost:5901
を設定してください。
トンネルが実行されたら、VNCクライアントを使用して localhost:5901
に接続します。手順1で設定したパスワードで認証するように求められます。
接続すると、デフォルトのXfceデスクトップが表示されます。次のようになります。
次のように、ファイルマネージャまたはコマンドラインを使用して、ホームディレクトリ内のファイルにアクセスできます。
CTRL + C
ターミナルを押してSSHトンネルを停止し、プロンプトに戻ります。これにより、VNCセッションも切断されます。
次に、VNCサーバーをサービスとしてセットアップしましょう。
次に、VNCサーバーをsystemdサービスとして設定し、他のサービスと同じように、必要に応じて開始、停止、および再起動できるようにします。これにより、サーバーの再起動時にVNCが確実に起動します。
まず、お気に入りのテキストエディタを使用して、新しい / etc / systemd / system / vncserver @ .service
ユニットファイルを作成します。
sudo nano /etc/systemd/system/[email protected]
@
名前の最後にある記号を使用すると、サービス構成で使用できるパラメーターを渡すことができます。これを使用して、サービスを管理するときに使用するVNC表示ポートを指定します。
次の行をファイルに追加します。 ** User 、 Group 、 WorkingDirectory の値、および PIDFILE **値のユーザー名をユーザー名と一致するように変更してください:
[ Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[ Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i >/dev/null2>&1
ExecStart=/usr/bin/vncserver -depth 24-geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[ Install]
WantedBy=multi-user.target
VNCがすでに実行されている場合、 ExecStartPre
コマンドは停止します。 ExecStart
コマンドはVNCを起動し、色の深さを1280x800の解像度で24ビットカラーに設定します。これらの起動オプションをニーズに合わせて変更することもできます。
ファイルを保存して閉じます。
次に、新しいユニットファイルについてシステムに通知します。
sudo systemctl daemon-reload
ユニットファイルを有効にします。
sudo systemctl enable [email protected]
1
の下の@
記号は、表示番号付きのサービスが表示されているはずであることを示します。この場合、デフォルトの:1
について手順2で説明します。
VNCサーバーがまだ実行中の場合は、現在のインスタンスを停止します。
vncserver -kill :1
次に、他のsystemdサービスと同じように起動します。
sudo systemctl start vncserver@1
次のコマンドで起動したかどうかを確認できます。
sudo systemctl status vncserver@1
正しく起動した場合、出力は次のようになります。
● [email protected] - Start TightVNC server at startup
Loaded:loaded(/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
Active:active(running) since Mon 2018-07-0918:13:53 UTC; 2min 14s ago
Process:22322 ExecStart=/usr/bin/vncserver -depth 24-geometry 1280x800 :1(code=exited, status=0/SUCCESS)
Process:22316 ExecStartPre=/usr/bin/vncserver -kill :1>/dev/null2>&1(code=exited, status=0/SUCCESS)
Main PID:22330(Xtightvnc)
...
コンピューターを再起動すると、VNCサーバーが使用可能になります。
SSHトンネルを再度開始します。
ssh -L 5901:127.0.0.1:5901-C -N -l sammy your_server_ip
次に、VNCクライアントソフトウェアを使用して新しい接続 localhost:5901
を確立し、コンピューターに接続します。
これで、Ubuntu18.04サーバーで安全なVNCサーバーが稼働しました。これで、使いやすく使い慣れたグラフィカルインターフェイスを使用してファイル、ソフトウェア、および設定を管理できるようになり、Webブラウザなどのグラフィカルソフトウェアをリモートで実行できるようになります。
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu18.04にVNCをインストールして構成する方法」
Recommended Posts