具有 ubuntu 伺服器的 Amazon EC2 執行個體上的永久桌面

具有 ubuntu 伺服器的 Amazon EC2 執行個體上的永久桌面

我正在嘗試在 Amazon 上的 ubuntu 14.04 伺服器實例上運行程序,但它需要 gui。我可以安裝 lunbuntu 並使用 x2go 查看桌面,但是一旦我的網路連線出現問題,x2go 的連線就會斷開,桌面環境似乎會關閉(連同我的程式)。

有沒有辦法讓桌面始終在實例上運行並使用 x2go 存取它(而不是在連接時創建它),這樣即使我失去連接桌面也可以運行?在 EC2 上運行它的全部目的是提高穩定性,而不是我的草率連接。

經過大量時間的閱讀和嘗試不同的解決方案來設定 DISPLAY 和 xauth 檔案這個問題後,我似乎無法讓它工作。還可以做到嗎?

答案1

當然。有兩種選擇:

  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(即保持控制和,釋放兩者,按 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,那麼這不是一個選擇。

相關內容