Thursday, January 03, 2019

在Ubuntu 18.04 架設VNC Server

很久前有筆記過如何在CentOS7上架設VNC Server,這幾天實做了一下VNC Server在Ubuntu 18.04上。

以下就簡單紀錄一下步驟。

Steps:
1. Install VNC Server (遠端桌面環境將採用xfce):
$ sudo apt-get install vnc4server xfce4 xfce4-goodies
2. 建立VNC server的配置檔與user密碼:
$ vncpasswd
$ vim.tiny ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 
$ chmod 755 ~/.vnc/xstartup
3. 手動啟動VNC Server:
這個時候我們先測試看看VNC Server可不可以正常工作。






如果有看到以上類似的畫面,那說明VNC Server已經啟動並且listen在TCP port 5901。但是請注意,預設它會只listen在localhost,這個等一下在建立systemd startup script的時候,我們可以修改它。
4. 建立systemd startup script: 
 做這個設定的最大好處是將來系統重開機後,我就不需要每次都要手動啟動VNC Server了。
4.1 建立VNC Server script file:
 $ sudo vim.tiny /etc/systemd/system/vncserver@.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=u
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -localhost no -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
剛剛有提到預設VNC Server只會listen在localhost:5901,但透過參數-localhost no可以讓它listen在0.0.0.0也就是all net的概念。 
4.2 手動reload systemd: (每次有新增或修改systemd的startup script file後,記得此步驟)
$ sudo systemctl daemon-reload
4.3 透過systemd啟動VNC Server:
$ sudo systemctl start vncserver@1.service
4.4 在系統開機時,自動啟動VNC Server:
$ sudo systemctl enable vncserver@1.service
假設一切順利的話,輸入相關的命令後,應該可以看到類似的畫面。








 5. 遠端測試: (採用Ubuntu內建的Remmina remote desktop client)

2 comments:

小狐狸事務所 said...

版大您好,
我照上面程序設定後可順利連線, 但螢幕卻是網格, 請問這可能是甚麼問題? 感謝.

夜市小霸王 said...

這是狐狸大耶