グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動
䞀郚のナヌザヌは、Windows を搭茉した比范的安䟡な VPS をレンタルしお、リモヌト デスクトップ サヌビスを実行したす。 デヌタセンタヌで独自のハヌドりェアをホストしたり、専甚サヌバヌをレンタルしたりするこずなく、Linux でも同様のこずが可胜です。 テストや開発のための䜿い慣れたグラフィカル環境、たたはモバむル デバむスから䜜業するための幅広いチャネルを備えたリモヌト デスクトップを必芁ずする人もいたす。 リモヌト フレヌム バッファ (RFB) プロトコル ベヌスの仮想ネットワヌク コンピュヌティング (VNC) システムを䜿甚するには、倚くのオプションがありたす。 この短い蚘事では、ハむパヌバむザヌを備えた仮想マシン䞊でこれを構成する方法を説明したす。

目次

VNC サヌバヌの遞択
むンストヌルず構成
systemd 経由でサヌビスを開始する
デスクトップ接続

VNC サヌバヌの遞択

VNC サヌビスは仮想化システムに組み蟌むこずができ、ハむパヌバむザヌがそれを゚ミュレヌトされたデバむスに接続するため、远加の構成は必芁ありたせん。 このオプションには重倧なオヌバヌヘッドが含たれおおり、すべおのプロバむダヌでサポヌトされおいるわけではありたせん。リ゜ヌス集玄床の䜎い実装であっおも、実際のグラフィックス デバむスを゚ミュレヌトする代わりに、単玔化された抜象化 (フレヌムバッファ) が仮想マシンに転送されたす。 堎合によっおは、VNC サヌバヌが実行䞭の X サヌバヌに関連付けられるこずがありたすが、この方法は物理マシンにアクセスするのにより適しおおり、仮想マシンでは倚くの技術的問題が発生したす。 VNC サヌバヌをむンストヌルする最も簡単な方法は、組み蟌みの X サヌバヌを䜿甚するこずです。 物理デバむス (ビデオ アダプタヌ、キヌボヌド、マりス) やハむパヌバむザヌを䜿甚したそれらの゚ミュレヌションを必芁ずしないため、あらゆるタむプの VPS に適しおいたす。

むンストヌルず構成

デフォルト構成の Ubuntu Server 18.04 LTS を備えた仮想マシンが必芁です。 このディストリビュヌションの暙準リポゞトリには、いく぀かの VNC サヌバヌがありたす。 TightVNCに, タむガヌVNC, x11vnc その他。 私たちは、開発者によっおサポヌトされおいない TightVNC の珟圚のフォヌクである TigerVNC に萜ち着きたした。 他のサヌバヌのセットアップも同様の方法で行われたす。 たた、デスクトップ環境を遞択する必芁もありたす。私たちの意芋では、コンピュヌティング リ゜ヌスの芁件が比范的䜎いため、最適なオプションは XFCE です。 垌望する堎合は、別の DE たたは WM をむンストヌルできたす。すべおは個人の奜みによっお異なりたすが、゜フトりェアの遞択は、RAM ずコンピュヌティング コアの必芁性に盎接圱響したす。

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動

すべおの䟝存関係を含むデスクトップ環境のむンストヌルは、次のコマンドで実行したす。

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

次に、VNC サヌバヌをむンストヌルする必芁がありたす。

sudo apt-get install tigervnc-standalone-server tigervnc-common

スヌパヌナヌザヌずしお実行するのは悪い考えです。 ナヌザヌずグルヌプを䜜成したす。

sudo adduser vnc

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動

ナヌザヌを sudo グルヌプに远加しお、管理関連のタスクを実行できるようにしたす。 そのような必芁がない堎合は、この手順をスキップできたす。

sudo gpasswd -a vnc sudo

次のステップでは、vnc ナヌザヌ暩限で VNC サヌバヌを実行し、安党なパスワヌドず構成ファむルを ~/.vnc/ ディレクトリに䜜成したす。 パスワヌドの長さは 6  8 文字です (䜙分な文字は切り取られたす)。 必芁に応じお、閲芧専甚のパスワヌドも蚭定したす。 キヌボヌドやマりスにアクセスする必芁はありたせん。 次のコマンドは vnc ナヌザヌずしお実行されたす。

su - vnc
vncserver -localhost no

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動
デフォルトでは、RFB プロトコルは 5900  5906 の TCP ポヌト範囲を䜿甚したす。これがいわゆるポヌトです。 ディスプレむ ポヌト。それぞれが X サヌバヌ画面に察応したす。 この堎合、ポヌトは :0 から :6 たでの画面に関連付けられたす。 起動した VNC サヌバヌ むンスタンスはポヌト 5901 をリッスンしたす (画面: 1)。 他のむンスタンスは、画面 :2、:3 などの他のポヌトで動䜜できたす。さらに蚭定を進める前に、サヌバヌを停止する必芁がありたす。

vncserver -kill :1

コマンドには次のような内容が衚瀺されたす:「Xtigervnc プロセス ID 18105 を匷制終了... 成功!」

TigerVNC が起動するず、~/.vnc/xstartup スクリプトを実行しお構成蚭定を構成したす。 独自のスクリプトを䜜成したしょう。たず、既存のスクリプトが存圚する堎合は、そのバックアップ コピヌを保存したす。

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

XFCE デスクトップ環境セッションは、次の xstartup スクリプトによっお開始されたす。

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

VNC がホヌム ディレクトリ内の .Xresources ファむルを読み取るには、xrdb コマンドが必芁です。 そこでナヌザヌは、フォントのレンダリング、端末の色、カヌ゜ルのテヌマなど、さたざたなグラフィカル デスクトップ蚭定を定矩できたす。 スクリプトは実行可胜にする必芁がありたす。

chmod 755 ~/.vnc/xstartup

これでVNCサヌバヌのセットアップは完了です。 コマンド vncserver -localhost no (vnc ナヌザヌずしお) を䜿甚しお実行するず、以前に指定したパスワヌドで接続でき、次の図が衚瀺されたす。

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動

systemd 経由でサヌビスを開始する

VNC サヌバヌを手動で起動するのは戊闘での䜿甚には適さないため、システム サヌビスを構成したす。 コマンドは root ずしお実行されたす (sudo を䜿甚したす)。 たず、サヌバヌ甚に新しいナニット ファむルを䜜成したしょう。

sudo nano /etc/systemd/system/[email protected]

名前に @ 蚘号を䜿甚するず、匕数を枡しおサヌビスを構成できたす。 この䟋では、VNC ディスプレむ ポヌトを指定したす。 ナニット ファむルはいく぀かのセクションで構成されたす。

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

次に、新しいファむルに぀いお systemd に通知し、アクティブ化する必芁がありたす。

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

名前の数字 1 はスクリヌン番号を指定したす。

VNC サヌバヌを停止し、サヌビスずしお開始しおステヌタスを確認したす。

# Пт ОЌеМО пПльзПвателя vnc 
vncserver -kill :1

# с прОвОлегОяЌО суперпПльзПвателя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

サヌビスが実行されおいる堎合は、次のような結果が埗られるはずです。

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動

デスクトップ接続

私たちの構成では暗号化を䜿甚しおいないため、ネットワヌク パケットが攻撃者によっお傍受される可胜性がありたす。 さらに、VNC サヌバヌでは頻繁に 脆匱性を芋぀けるしたがっお、むンタヌネットからアクセスできるように開かないでください。 ロヌカル コンピュヌタヌで安党に接続するには、トラフィックを SSH トンネルにパッケヌゞ化しおから、VNC クラむアントを構成する必芁がありたす。 Windows では、グラフィカル SSH クラむアント (PuTTY など) を䜿甚できたす。 セキュリティのため、サヌバヌ䞊の TigerVNC は localhost のみをリッスンし、パブリック ネットワヌクからは盎接アクセスできたせん。


sudo netstat -ap |more

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動
Linux、FreeBSD、OS X、およびその他の UNIX ç³» OS では、ssh ナヌティリティを䜿甚しおクラむアント コンピュヌタからのトンネルが䜜成されたす (sshd が VNC サヌバヌ䞊で実行されおいる必芁がありたす)。

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

-L オプションは、リモヌト接続のポヌト 5901 をロヌカルホストのポヌト 5901 にバむンドしたす。 -C オプションは圧瞮を有効にし、-N オプションは ssh にリモヌト コマンドを実行しないよう指瀺したす。 -l オプションは、リモヌト ログむンのログむンを指定したす。

ロヌカル コンピュヌタヌでトンネルを蚭定した埌、VNC クラむアントを起動し、VNC サヌバヌにアクセスするために以前に指定したパスワヌドを䜿甚しおホスト 127.0.0.1:5901 (localhost:5901) ぞの接続を確立する必芁がありたす。 これで、暗号化されたトンネルを介しお VPS 䞊の XFCE グラフィカル デスクトップ環境ず安党に通信できるようになりたした。 スクリヌンショットでは、䞀番䞊のナヌティリティがタヌミナル ゚ミュレヌタヌで実行されおおり、仮想マシンのコンピュヌティング リ゜ヌスの消費量が少ないこずが瀺されおいたす。 その埌、すべおはナヌザヌのアプリケヌションに䟝存したす。

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動
Linux の VNC サヌバヌは、ほがすべおの VPS にむンストヌルしお構成できたす。 これには、ビデオ アダプタ ゚ミュレヌションを䜿甚した高䟡でリ゜ヌスを倧量に消費する構成や商甚゜フトりェア ラむセンスの賌入は必芁ありたせん。 私たちが怜蚎したシステム サヌビス オプション以倖にも、システムの起動時にデヌモン モヌド (/etc/rc.local 経由) で起動するか、inetd 経由でオンデマンドで起動するオプションもありたす。 埌者は、マルチナヌザヌ構成を䜜成する堎合に興味深いものです。 むンタヌネット スヌパヌサヌバヌは VNC サヌバヌを起動しおクラむアントをそれに接続し、VNC サヌバヌは新しい画面を䜜成しおセッションを開始したす。 その䞭で認蚌するには、グラフィカル ディスプレむ マネヌゞャヌ (たずえば、 LightDM)、クラむアントを切断するず、セッションが閉じられ、画面で動䜜しおいるすべおのプログラムが終了したす。

グラフィカルむンタヌフェむスを䜿甚した Linux 䞊の VPS: Ubuntu 18.04 での VNC サヌバヌの起動

出所 habr.com

コメントを远加したす