昨天在我的CentOS7測試機上安裝配置了VNC服務器,參考了網上很多資料,但都有一定的缺陷,特別是在配置root賬戶遠程VNC連接的配置文件時,幾乎沒有什麼參考文檔提醒PIDFile的配置要去掉/home,導致我配置的時候一直報錯,折騰了一天,最後在一篇參考文檔的報錯解析中得到啓發,最後完成了配置,先將我的實際操作整理成文檔供大家參考,也供自己以後查閱。正文如下:
1、如果第一次安裝tigervnc,可以跳過第2步;
2、如果以前安裝過,需要通過以下幾步刪除tigervnc:
卸載原安裝的服務器軟件:yum remove tigervnc-server
刪除/etc/systemd/system文件夾下的配置文件:vncserver@:1.service等
刪除可遠程VNC連接的賬戶home目錄下的.vnc文件夾:remove -rf ~\.vnc
查看/tmp/.X11-unix目錄,將X[1-9]的文件刪掉,注意X0不能刪除;
最後重啓OS
3、安裝tigervnc:yum install tigervnc-server
--------------------------以上爲root用戶操作事項-------------------------------------------
--------------------------以下分別以root賬戶和其它賬戶進行配置-----------------------------
【root賬戶:操作均在root賬戶下執行】
4、在/etc/systemd/system文件下創建配置文件
cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
這裏需要注意的是上面這個1代表服務端口號,可取其它值,此處的1代表開放的服務5901端口,以此類推
5、編輯配置文件:vim /etc/systemd/system/vncserver@:1.service,更改如下兩行(紅色行),將<USER>改爲root, 將PIDFile=後面的/home去掉
[...]
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
# ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
# PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
6、設置vnc遠程連接密碼:vncpasswd
7、添加防火牆規則
firewall-cmd --permanent --zone=public --add-service vnc-server
firewall-cmd --reload
如果提示firewalld沒啓動,請運行firewalld啓動防火牆,再運行上面兩條命令;
8、設置啓動
systemctl daemon-reload 重啓daemon使上述配置生效
systemctl enable vncserver@:1.service 使服務自動啓動
systemctl start vncserver@:1.service 啓動服務
【其它賬戶:以賬戶名爲cs1爲例】
4、在/etc/systemd/system文件下創建配置文件[root賬號下操作]
cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:2.service
這裏需要注意的是上面這個2代表服務端口號,可取其它值,此處的2代表開放的服務5902端口,以此類推
5、編輯配置文件[root賬號下操作]:vim /etc/systemd/system/vncserver@:1.service,更改如下兩行(紅色行),將<USER>改爲cs1
[...]
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
# ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
# PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStart=/sbin/runuser -l cs1 -c "/usr/bin/vncserver %i"
PIDFile=/home/cs1/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
6、設置vnc遠程連接密碼[cs1賬號下操作]:vncpasswd
7、添加防火牆規則[root賬號下操作](如果以前已添加,此步驟可省略)
firewall-cmd --permanent --zone=public --add-service vnc-server
firewall-cmd --reload
如果提示firewalld沒啓動,請運行firewalld啓動防火牆,再運行上面兩條命令;
8、設置啓動[root賬號下操作]
systemctl daemon-reload 重啓daemon使上述配置生效
systemctl enable vncserver@:2.service 使服務自動啓動
systemctl start vncserver@:2.service 啓動服務
參考:http://www.centoscn.com/p_w_picpath-text/install/2016/0407/7008.html
http://www.cnblogs.com/h2zZhou/p/5209948.html