Amazon-Ec2

帶有 ubuntu 伺服器的 Amazon EC2 實例上的永久桌面

  • February 17, 2016

我正在嘗試在亞馬遜上的 ubuntu 14.04 伺服器實例上執行一個程序,但它需要一個 gui。我可以安裝 lunbuntu 並使用 x2go 查看桌面,但只要我的網際網路連接出現問題,x2go 的連接就會斷開,桌面環境似乎會關閉(連同我的程序一起)。

有沒有辦法讓桌面一直在實例上執行並使用 x2go 訪問它(而不是在我連接時創建它),所以即使我失去連接,桌面也會執行?在 EC2 上執行它的全部目的是提高穩定性,而不是我草率的連接。

經過數小時的大量閱讀和嘗試不同的解決方案來設置 DISPLAY 和 xauth 文件後,我似乎無法讓它工作。甚至可以做到嗎?

當然。有兩種選擇:

  1. 如果您偶爾需要訪問桌面,請使用vncserver
sudo apt-get install tightvncserver

注意:還有其他實現,但是這個可以正常工作。安裝後,執行它:

vncserver :1

第一次執行時,它會要求輸入密碼才能訪問您的桌面。選一個。您現在可以使用任何 VNC 客戶端訪問它。注意:VNC 協議未加密。您將希望以某種加​​密方式(例如,SSH 埠轉發、VPN 或類似的東西)對其進行隧道傳輸,並將其埠(在本例中為埠 5901)設置為防火牆。 2. 如果您不需要訪問 GUI,它只需要執行,您可以xvfbscreen會話中使用:

sudo apt-get install screen xvfb
screen xvfb-run your_application

這會啟動一個螢幕會話,它會啟動 xvfb,它會啟動您的應用程序。screen是一個程序,可讓您啟動某些內容,斷開連接並稍後重新連接。斷開是通過ctrl-的方式完成的ad(即按住 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,這不是一個選項。

引用自:https://unix.stackexchange.com/questions/263892