帶有 ubuntu 伺服器的 Amazon EC2 實例上的永久桌面
我正在嘗試在亞馬遜上的 ubuntu 14.04 伺服器實例上執行一個程序,但它需要一個 gui。我可以安裝 lunbuntu 並使用 x2go 查看桌面,但只要我的網際網路連接出現問題,x2go 的連接就會斷開,桌面環境似乎會關閉(連同我的程序一起)。
有沒有辦法讓桌面一直在實例上執行並使用 x2go 訪問它(而不是在我連接時創建它),所以即使我失去連接,桌面也會執行?在 EC2 上執行它的全部目的是提高穩定性,而不是我草率的連接。
經過數小時的大量閱讀和嘗試不同的解決方案來設置 DISPLAY 和 xauth 文件後,我似乎無法讓它工作。甚至可以做到嗎?
當然。有兩種選擇:
- 如果您偶爾需要訪問桌面,請使用
vncserver
:sudo apt-get install tightvncserver
注意:還有其他實現,但是這個可以正常工作。安裝後,執行它:
vncserver :1
第一次執行時,它會要求輸入密碼才能訪問您的桌面。選一個。您現在可以使用任何 VNC 客戶端訪問它。注意:VNC 協議未加密。您將希望以某種加密方式(例如,SSH 埠轉發、VPN 或類似的東西)對其進行隧道傳輸,並將其埠(在本例中為埠 5901)設置為防火牆。 2. 如果您不需要訪問 GUI,它只需要執行,您可以
xvfb
在screen
會話中使用:sudo apt-get install screen xvfb screen xvfb-run your_application
這會啟動一個螢幕會話,它會啟動 xvfb,它會啟動您的應用程序。
screen
是一個程序,可讓您啟動某些內容,斷開連接並稍後重新連接。斷開是通過ctrl
-的方式完成的a
,d
(即按住 control 和 a,鬆開兩者,按 d);重新連接是用 完成的screen -r
。
xvfb-run
是一個腳本Xvfb
,它是“X for Virtual Framebuffer”的縮寫。它使用 X11 協議,但幾乎什麼都不做;無論您的應用程序發送到該 X 伺服器的任何內容都不會顯示在任何螢幕上。然而,它仍然是一個 X 伺服器;為了能夠使用它,您必須設置一些環境變數並做一些Xauthority
魔術。xvfb-run
存在,因此您不必手動執行此操作。最後,在完成所有設置後,xvfb-run
啟動您的應用程序,並將其連接到Xvfb
圖形和您啟動它的終端(在本例中,您的螢幕會話)用於標準輸出。每當您的應用程序與 X 伺服器斷開連接時,Xvfb
(以及擴展,xvfb-run
)都會退出。由於
Xvfb
不允許您修改內容,因此它需要更少的資源並且可能更快。但是,如果您需要訪問 GUI,這不是一個選項。