このチュートリアルでは、Debian 9にVNCサーバーをインストールして構成する方法について説明します。また、SSHトンネルを作成し、VNCサーバーに安全に接続する方法も示します。
Virtual Network Computing(VNC)は、キーボードとマウスを使用して別のコンピューターをリモート制御できるグラフィカルデスクトップ共有システムです。
前提条件#
チュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
デスクトップ環境のインストール#
Debianサーバーにデスクトップ環境がインストールされていない可能性があります。最初のステップは、軽量のデスクトップ環境をインストールすることです。
Debianリポジトリで利用できるデスクトップ環境(DE)はいくつかあります。選択したデスクトップ環境であるXfceasを使用します。高速、安定、軽量であるため、リモートサーバーでの使用に最適です。
次のコマンドを使用して、パッケージインデックスを更新し、DebianサーバーにXfceをインストールします。
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
システムによっては、Xfceパッケージのダウンロードとインストールに時間がかかる場合があります。
VNCサーバーのインストール#
TightVNC、TigerVNC、x11vncなどのDebianリポジトリで利用可能ないくつかの異なるVNCサーバーもあります。各VNCサーバーには、速度とセキュリティの点で長所と短所があります。
積極的にメンテナンスされている高性能VNCサーバーであるTigerVNCを使用します。 DebianサーバーにTigerVNCをインストールするには、次のコマンドを発行します。
sudo apt install tigervnc-standalone-server tigervnc-common
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 'debian9.localdomain:1 (linuxize)' desktop at :1 on machine debian9.localdomain
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/debian9.localdomain:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.
vncserver
を実行するとき 初めてコマンドを実行すると、パスワードファイルが作成されて~/.vnc
に保存されます。 ディレクトリ。
:1
に注意してください 上記の出力のホスト名の後に。これは、vncサーバーが実行されている表示ポート番号を示します。この場合、サーバーはTCPポート5901
で実行されています (5900 + 1)。 vncserver
を使用して2番目のインスタンスを作成する場合 次の空きポート、つまり:2
で実行されます 、これは、サーバーがポート5902
で実行されていることを意味します (5900 + 2)。
注意すべき重要な点は、VNCサーバーを使用する場合、:X
5900+X
を参照するディスプレイポートです 。
次の手順に進む前に、vncserver
を使用してVNCインスタンスを停止します -kill
を使用したコマンド オプションと引数としてのサーバー番号。この場合、サーバーはポート5901(:1
)で実行されています。 )、それで停止します:
vncserver -kill :1
Killing Xtigervnc process ID 6677... success!
VNCサーバーの構成#
XfceとTigerVNCの両方がマシンにインストールされたので、Xfceを使用するようにTigerVNCを構成する必要があります。これを行うには、次のファイルを作成します。
nano ~/.vnc/xstartup
〜/ .vnc / xstartup #!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
完了したら、ファイルを保存して閉じます。上記のスクリプトは、TigerVNCサーバーを起動または再起動するたびに自動的に実行されます。
~/.vnc/xstartup
ファイルには実行権限も必要です。次のchmod
を実行します 権限が正しいことを確認するコマンド:
chmod u+x ~/.vnc/xstartup
追加のオプションをVNCサーバーに渡す必要がある場合は、config
という名前のファイルを作成できます。 1行に1つのオプションを追加します。次に例を示します:
geometry=1920x1080
dpi=96
Systemdユニットファイルの作成#
systemdユニットファイルを使用すると、必要に応じてVNCサービスを簡単に開始、停止、および再起動できます。
テキストエディタを開き、次の設定をコピーして貼り付けます。 7行目のユーザー名をユーザー名と一致するように変更することを忘れないでください。
sudo nano /etc/systemd/system/[email protected]
/etc/systemd/system/[email protected] [Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
ファイルを保存して閉じます。
新しい[email protected]
をsystemdに通知します 次のコマンドを実行してファイルが存在します:
sudo systemctl daemon-reload
次に、サービスを有効にします:
sudo systemctl enable [email protected]
番号1
@
の後 signは、VNCサービスが実行される表示ポートを定義します。 1
を使用しているため、前のセクションで説明したように VNCサーバーはポート5901
でリッスンします 。
以下を実行してVNCサービスを開始します:
sudo systemctl start [email protected]
サービスが正常に開始されていることを確認します:
sudo systemctl status [email protected]
● [email protected] - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-10-03 05:23:33 PDT; 51s ago
Process: 7063 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 7071 (vncserver)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/system-vncserver.slice/[email protected]
‣ 7071 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg
VNCサーバーへの接続#
VNCは暗号化されたプロトコルではないため、パケットスニッフィングの対象となる可能性があります。推奨されるアプローチは、ポート5901のローカルマシンから同じポートのサーバーにトラフィックを安全に転送するSSHトンネルを作成することです。
LinuxおよびmacOSでSSHトンネリングを設定する#
Linux、macOS、またはその他のUnixベースのオペレーティングシステムをマシンで実行している場合は、ssh
を使用してSSHトンネルを簡単に作成できます。 コマンド:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
ユーザーパスワードの入力を求められます。
username
を置き換えることを忘れないでください およびserver_ip_address
ユーザー名とサーバーのIPアドレスを使用します。
WindowsでSSHトンネリングを設定する#
Windowsを実行している場合は、PuTTYSSHクライアントを使用してSSHトンネリングを設定できます。
Puttyを開き、サーバーのIPアドレスをHost name or IP address
に入力します フィールド。
Connection
の下 メニューで、SSH
を展開します Tunnels
を選択します 。 VNCサーバーポートを入力します(5901
)Source Port
フィールドに入力し、server_ip_address:5901
と入力します Destination
で フィールドをクリックし、Add
をクリックします 下の画像に示すボタン:
Session
に戻ります 毎回入力する必要がないように設定を保存するページ。保存したセッションを選択し、Open
をクリックしてリモートサーバーにログインするだけです。 ボタン。
Vncviewerを使用した接続#
SSHトンネリングを設定したので、Vncviewerを開き、localhost:5901
でVNCサーバーに接続します。 。
TigerVNC、TightVNC、RealVNC、UltraVNC、Vinagre、VNC Viewer forGoogleChromeなどの任意のVNCビューアを使用できます。
この例では、TigerVNCを使用します。 VNCビューアを開き、localhost:5901
と入力します 、Connect
をクリックします ボタン。
プロンプトが表示されたらパスワードを入力すると、デフォルトのXfceデスクトップが表示されます。次のようになります:
この時点で、VNCを介してサーバーに正常に接続できています。これで、キーボードとマウスを使用して、ローカルマシンからリモートXFCEデスクトップとの対話を開始できます。