Ubuntu 19.04を使用しています。起動中にUbuntuコンピュータのVNCサーバーを開くようにしたいと思います。モニターが接続されていません。 Ubuntuデスクトップ全体をリモートで実行できるようにしたいです。
SSHサーバーが機能するように管理し、x11vncサーバーをMac VNCクライアントに表示することもできます。
ただし、これはUbuntuに手動でログインしてコマンドを実行した場合にのみ機能します。
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -share
MacでSSHトンネルを作成し、localhost:5900接続を使用して接続できます。
次に、起動中にx11vncを開くようにするために、次のようにしました。
sudo nano /lib/systemd/system/x11vnc.service
次のテキストを保存しました(123は私のgdm UID番号です)。
[Unit] Description=Start x11vnc at startup. After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -loop -forever -bg -rfbport 5900 -xkb -noxrecord -noxfixes -noxdamage -shared -norc -auth /run/user/123/gdm/Xauthority -rfbauth /etc/x11vnc.pass [Install] WantedBy=multi-user.target
次のコマンドを実行しました。
sudo systemctl enable x11vnc.service sudo systemctl daemon-reload sudo systemctl start x11vnc.service
再起動しましたが、Ubuntuコンピュータにログインしていません。
SSHに接続し、Macでトンネルを正常に作成しました。
VNCサーバーに接続しようとしましたが失敗しました。
その後、Ubuntuコンピュータに手動でログインしました。
VNCサーバーに接続しようとしましたが、正常に接続されましたが、黒い画面が表示されます。
したがって、Ubuntuセッションに手動でログインしたときにのみサービスが開始されることがわかります。
私が達成したいことを達成する方法はありますか?また、他のサーバーを使用する意向があります。 x11vncのみを使用するため、新しいデスクトップをインストールする必要はありません。
答え1
VNCサーバーを実行する方法は2つあります。
- 物理コンソールと並行して実行 - VNCセッションは独立しており、物理コンソールユーザーが何ができるかを見ることはできません。
- 物理コンソールとの統合:ディスプレイが共有されるため、実際の座席から出てVNCを介して同じセッションに接続でき、その逆も可能です。
物理コンソールは通常、xauth で保護されます。 VNCサーバーを統合する方法は、ユーザーによって異なります。ディスプレイマネージャ。私は使用します光DM例えば。
Lightdmはファイルを生成し/run/lightdm/root/
、x11vncに次のように使用するように指示できます。-display :0 -auth '/run/lightdm/root/:0'
あるいは、-findauth
よく知られているディスプレイマネージャにオプションを使用することもできます。
したがって、systemdサービスを開始しないでください。まず、さまざまなオプションを使用してx11vncを手動で起動して接続できることを確認してください。
/lib/systemd/system/x11vnc.service
また、パッケージが更新されると上書きされるため、編集しないでください。コピーを作成する/etc/systemd/system/
か、必要な設定のみを上書きすることをお勧めします。/etc/systemd/system/x11vnc.service.d/custom.conf
私は働くx11vnc.service
:
[Unit]
Description=VNC Server for X11
Requires=graphical.target
After=graphical.target
[Service]
ExecStart=/usr/local/bin/x11vnc-lightdm
[Install]
WantedBy=graphical.target
/usr/local/bin/x11vnc-lightdm
:
#!/bin/bash
OPTS=
exec /usr/bin/x11vnc \
$OPTS \
-rfbauth /root/.vnc/passwd -forever -loop -display :0 -auth '/run/lightdm/root/:0'