
我在 VMWare 中運行 Ubuntu 伺服器。我想將 X11 從 Ubuntu 客戶機轉送到 Mac 主機。
我已經安裝XQuartz 2.7.9 (xorg-server 1.17.4)
在Mac主機上了。
Ubuntu 上的 SSH 轉送已啟用。
然後我在 iTerm 中嘗試了以下操作:
%> echo $DISPLAY
/private/tmp/com.apple.launchd.mjxVyILVrR/org.macosforge.xquartz:0
%> ssh -X root@xxxx
# echo $DISPLAY
# gnome-terminal
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display
$DISPLAY 為空,X11 轉送不起作用。
有任何想法嗎?
答案1
試著跑ssh -Y root@xxxx
進去xterm
裡面XQuartz 而不是 iTerm。那樣有用嗎?
答案2
在遠端系統中開啟 /etc/ssh/sshd_config 並設定 X11Forwarding yes 。然後重啟ssh服務並重試
答案3
如果我錯了請糾正我。您想要從 Mac 遠端存取執行 Ubuntu 的計算機,當您“ssh”進入 Ubuntu 並嘗試“echo $DISPLAY”時,您會得到一個空響應。以下解決方案可能不適用於您的情況,但如果您嘗試的內容與我嘗試過的內容類似,請嘗試一下。
正如您已經發現的那樣,必須先找到 DISPLAY 變數。
所以在你的 Mac 中如果你以普通用戶身份輸入
echo $DISPLAY
那你會得到類似下面的東西(就是你手上的情況)。不管怎樣,你們都會在你們的系統中看到類似的東西。
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
然後嘗試類似的東西
xeyes
現在您知道您的顯示器正在工作
現在,如果您想嘗試與 root 相同的操作(請不要跳到我身上,我知道你們中的一些人強烈反對 root 訪問),但如果不起作用,則在 root 提示符中執行以下操作
export DISPLAY=/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
與您在普通用戶帳戶中找到的相同。然後將“/Users/normal user/.Xauthority”處的“.Xauthority”複製到“/var/root/”。 .Xauthority 檔案已經存在,但這會覆蓋它。
cp /Users/normal user/.Xauthority /var/root/
當然,導出可能會起作用,但執行上述操作並沒有壞處。現在嘗試以下操作。
echo $DISPLAY
你應該會看到以下內容
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
如果您從普通使用者提示字元「ssh」進入 Ubuntu,那麼您不需要執行 root 部分,但由於我使用 root「ssh」我的 Ubuntu 系統,所以我經常必須這樣做。
然後當你透過 ssh 進入 Ubuntu 時輸入
echo $DISPLAY
你會看到類似下面的內容
localhost:10.0
如果您已完成所有其他操作(例如轉發等),則上述內容將起作用。
同樣,如果您想在 Ubuntu 中使用 root,並且“echo $DISPLAY”沒有產生任何回應,請嘗試以下操作(假設您處於 root 提示符號下)。
cp /home/user name/.Xauthority /root/.Xauthority
現在嘗試
echo $DISPLAY
再一次,你會看到類似下面的內容
localhost:10.0
為了好玩嘗試一下
xeyes
它適用於我的情況。希望這對您有所幫助,並且能夠解決像上面這樣的問題,或者像我這樣的問題,有人遇到過,並且像我一樣在這個問題上花了幾個小時,同時撓頭並試圖拔掉頭髮:-))。
答案4
在嘗試了很多不同的選擇之後,這對我有用:
在我的 Mac 上:
我首先啟動 xQuartz。然後我進入終端並運行export DISPLAY=localhost:0
.
在我的遠端 Linux PC 上:
我遇到了 Wayland 問題,所以我去了/etc/gdm/custom.conf
並取消註釋該行WaylandEnable=false
。我也定了export XAUTHORITY=$HOME/.Xauthority
。最後,我設定了export QT_QPA_PLATFORM=xcb
一些圖形庫是 python 工作的原因。
設定完成後,您現在可以使用 ssh 進入遠端伺服器ssh -Y remoteserver@IP
,希望這應該可以工作。