環境:Ubuntu 16.04 套件:x11vnc

 


 

原因:

 

因為我之前設計的VNC連線模式大多是配合gdm桌面環境使用,

 

而這次要連線的主機是ubuntu 16版的桌面環境是採用unity

 

變成x11vnc在做遠端連線時,

 

參數上的設定問題讓他無法開啟遠端桌面環境。

 


 

處理方式:

 

我們先去看log那邊有什麼問題出現:

 

我設定vnc打開的時候

 

log寫在下面的路徑

 

#vim /var/log/x11vnc.log

 

=!====================================================

 

x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 19227

 

No protocol specified

 

XOpenDisplay(":0") failed.

 

Trying again with XAUTHLOCALHOSTNAME=localhost ...

 

No protocol specified

 

*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.

 

*** There may be "Xlib:" error messages above with details about the failure.

 

…..

 

LOG當中我們有看到一個重點

 

他這邊有簡單跟你介紹不同的桌面環境,

 

應該要用哪些不同的參數來使用

 

gdm: -auth /var/gdm/:0.Xauth

 

-auth /var/lib/gdm/:0.Xauth

 

kdm: -auth /var/lib/kdm/A:0-crWk72

 

-auth /var/run/xauth/A:0-crWk72

 

xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk

 

dtlogin: -auth /var/dt/A:0-UgaaXa

 

=!=========================================================

 

ubuntu中有很多種桌面環境模式,

 

x11VNC當中你的參數也要配合你的桌面環境去設計。

 

而我們的ubuntu 16.04 採用的事 unity的桌面環境,

 

使用上會比較麻煩。

 

所以這部份我就不在用xinted去進行服務開啟的動作,

 

---

 

我改成用systemctl這種新的統一格式去做服務的開啟與關閉。

 

這邊其實把格式貼近來就可以了,要注意的只有-rfbauth部份。

 

那邊的密碼要用我們先前已經生成好的那一組。

 

下面的格式內容是現在systemctl服務的標準格式。

 

#vim /lib/systemd/system/x11vnc.service

 

=!==========================================================

[Unit]

Description=Start x11vnc at startup.

 

After=multi-user.target

 

[Service]

 

Type=simple

 

ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/user/.vnc/passwd -rfbport 5900 -shared

 

[Install]

 

WantedBy=multi-user.target

 

=!==========================================================

 

再來就只要把他加到我們的服務當中就可以正常使用了。

 

設定並添加systemctl服務

 

# sudo systemctl daemon-reload

 

# sudo systemctl enable x11vnc.service

 

服務啟用與關閉

 

# sudo systemctl start x11vnc

# sudo systemctl stop x11vnc

 

服務運作後確認一下port有沒有正常啟用。

 

# ss -tnlp

 

=!=============================

 

LISTEN 0 32 :::5900 :::* users:(("x11vnc",pid=21131,fd=11))

 

=!=============================

 

有看到服務起來,這邊我要用noVNC進行連線測試看看。

 

關於noVNC連線建置,請參考部落格內文章。

 

# ./noVNC/utils/launch.sh --vnc [你的主機IP]:5900

 

 

可以連線就代表完成了!!

 

(本篇完)

 

全站熱搜

IT001 發表在 痞客邦 留言(0) 人氣()