CentOS7下VNC服務器-tigervnc配置

        昨天在我的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章