我有一個運行 Ubuntu 1804 的遠端虛擬機,並且想要運行 VNC。我正在使用 x11vnc,它需要運行 X 伺服器。目前,我透過 SSH 連線。
VM 有一張 Nvidia 卡,在使用 nvidia-xconfig 產生 xorg.conf 後,我可以使用 startx 啟動 X 會話,但只能以 root 身分啟動。任何後續透過 VNC 的連線都是使用 root 進行的,我想避免這種情況。
xorg.conf 檔案中的設備部分如下所示:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla K80"
BusID "0:30:0"
EndSection
當嘗試以非 root 使用者身分啟動 startx 時,我得到以下資訊:
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
如果我更改 /etc/X11/Xwrapper.config 以允許任何人啟動x,我會得到以下資訊:
Couldn't get a file descriptor referring to the console
我一直在讀到透過 SSH 連線並不意味著您已連接到文字控制台,您需要執行 startx。嘗試使用 chvt 變更為文字控制台失敗不會改變任何內容。
我可以透過 SSH 啟動 X 嗎?
答案1
這裡是一個基於 的解決方案systemd-run
,它欺騙性startx
地認為它是從虛擬終端運行的。
答案2
您可以新增登入管理員(例如lightdm
)並配置自動登入。甚至x11vnc
在用戶會話開始時運行。
或者,您可以vncserver
以使用者身分執行,然後透過 ssh 轉發直接連接到它:
ssh -L5904:localhost:5905 [email protected]
vncserver :5 # only if the server has not been started
然後,在客戶端上您可以運行:
xvncviewer localhost:4