透過 SSH 進行 X11 轉發

透過 SSH 進行 X11 轉發

過去幾個小時我一直在玩X11轉發,到目前為止我已經成功地將我的桌上型電腦的X伺服器轉發到我的筆記型電腦,使用X11VNC作為伺服器,X2VNC作為客戶端。 X2VNC 使用 Xinerama 在我的筆記型電腦和桌上型電腦之間提供類似雙螢幕的行為。

實際上真的很棒!

我知道大多數 Linux 系統在 TTY7 上運行 Xorg 和桌面環境。

因此我在想,是否有可能以任何方式將 VNC 隧道綁定到它自己的 TTY 上?

如果能夠在兩個 TTY 之間來回切換以選擇要管理的計算機,那就太好了。與使用 Xinerama 或 GUI 相比,我更喜歡這種方法。

答案1

我想這不是一個真正的答案,但它可能是一個起點。

我使用 xinit 啟動了一堆額外的 X 伺服器,如下所示;

xinit -- :1 tty3   
xinit -- :2    
xinit -- :3 tty5    
xinit -- :4

看起來我甚至可以在不同的虛擬顯示器上啟動多個 gnome3 和 xfce 會話

startx -- :2  tty3   
startx -- :3  tty4

現在我可以透過匯出 DISPLAY var 在這些會話中啟動內容export DISPLAY=:3,然後使用 Ctrl-Alt-F2、F3 等選擇它

然而我完全不知道我在做什麼(我正在切換 DISPLAY、會話、控制台還是 tty?),正如你所說,它非常酷......;-)

[tomh@workstation001 ~]$ export DISPLAY=:4
[tomh@workstation001 ~]$ google-chrome

答案2

我知道這很舊但是:

xinit -e ssh -XYC $HOSTTOSSHTO startx -- :1

我看到的唯一缺點是會話開始後您無法關閉登入終端機。像其他提到的帖子一樣,用CTRL+ ALT+來回移動。F#我一直用我的 Raspberry Pi 來完成此操作,並且也透過互聯網上的伺服器等來完成此操作(有點慢)。您也可以startx/usr/bin/icewmopenboxstartKDE其他名稱進行交換。

答案3

我似乎找到了一個合適的解決方案。

我專門創建了一個用戶,用於連接到我的桌上型電腦。

在我的筆記型電腦上使用者的 ~/.xinitrc 中,我有以下行(/home/desktop/.xinitrc):

exec vncviewer 192.168.1.2

192.168.1.2是我的桌上型電腦在我的網路上的IP。

就我而言,我現在在桌上型電腦上使用 Tiger VNC 作為客戶端,並且仍然使用 X11VNC 作為伺服器。

我想任何客戶都會這樣做。

現在的工作方式是,我透過 CTRL+ALT+F2 輸入 tty2,以新桌面使用者身分登錄,然後使用 啟動 x xinit -- :1。新的 x 伺服器將在 tty8 上啟動,因為我的主 x 伺服器已經在 tty7 上運行。

vncviewer 運行並成功連接到我的桌上型電腦,如果桌上型電腦的分辨率大於筆記型電腦的分辨率,則提供整個螢幕和滾動條。

現在,我可以使用 CTRL+ALT+7 和 CTRL+ALT+8 在筆記型電腦和桌上型電腦之間輕鬆切換。

這是假設您使用 Tiger VNC 的完整過程(唯一的區別是exec vncviewer x.x.x.x):

  1. 建立新用戶adduser desktop
  2. 新使用者的配置使用預設值即可,因此請繼續按 Enter 直到建立使用者。
  3. 開啟/home/desktop/.xinitrc(記得以 root 身分執行此操作,除非您以桌面身分登入並且也要注意權限)並清除檔案(如果有任何內容)並輸入以下行:exec vncviewer x.x.x.x
  4. 將 替換x.x.x.x為您想要的 IP 位址。
  5. 儲存文件。
  6. 使用 CTRL+ALT+X 輸入未使用的 tty,其中 X 是 1 到 9 之間的數字。
  7. 登入身份desktop
  8. 使用 啟動新的 X 伺服器xinit -- :1,如果 :1 已在使用中,您可以使用不同的顯示。
  9. 您將被傳送到啟動 X 伺服器的新 tty,瞧! Tiger VNC 現在應該連接到您選擇的 IP 位址。

可能如果您的桌面環境在您從任何使用者啟動 X 時自動啟動,則會遇到麻煩。因此,如果事情沒有按預期方式進行,請記住這一點。

相關內容