你的位置:首页 > 操作系统

[操作系统]Centos 7 配置 VNCServer 經驗


安裝 Centos 7後, 習慣性的安裝  Xmanager 3或4, 都不能正常工作, 無奈之下開始安裝 VNCServer。

(個人習慣使用Xmanager, 因為不需要安裝,只要配置一下就能用, 而且一直很穩定)

為了節省以後安裝 vncserver 的時間,寫這篇文章作備忘用

 

安裝/配置:

使用 yum 安裝 tigervnc-server

# yum install tigervnc-server

 

拷貝服務配置文件: 

# cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service

 

按照 vncserver@:1.service 文件頭部的指導, 只需要以下部分:

把有 <USER> 的地方都改為 用戶名, 本文使用 root

 

重新加載systemd守護進程, 使修改生效

# systemctl daemon-reload

 

設置連接密碼

# vncpasswd

 

啟動服務命令:

# systemctl start vncserver@:1.service

 

問題1:不能啟動服務

提示錯誤如下:

 

解決方法:

修改 vncserver@:1.service 文件中 Type=simple

再嘗試啟動服務後OK

# systemctl daemon-reload

# systemctl start vncserver@:1.service

 

到此, 在 win7 使用 vncview 已經可以遠程連線這台 VNCServer了 (需要在 IP 地址後面加上冒號5901註明端口, 例 10.0.0.100:5901)

 

問題2:不能停止服務

使用以下命令不能停止服務

# systemctl stop vncserver@:1.service

以上命令執行成功, 也沒有錯誤提示, 使用 telnet 來測試 VNCServer 的 5901 端口, 仍然是通的, 說明實際上服務仍在運行

說明2點:

(1) 以上情形只會發生在 root 用戶

(2) 使用 # vncserver -kill :1 可以停止服務

 

解決方法:

修改 /lib/systemd/system/vncserver@:1.service  文件

把 PidFile=/home/root/.vnc/%H%i.pid

改為 PidFile=/root/.vnc/%H%i.pid

再嘗試重啟服務後,就可以使用 # systemctl stop vncserver@:1.service 命令停止服務了

 

備注:

1) systemctl 設置服務自動啟動的命令為 systemctl enable vncserver@:1.service 

2) 配置過程中發現以下現象都是 vncserver@:1.service 沒有配好的原因:

    (1) 執行啟動服務的命令後,在幾秒後服務停止, telnet 5901端口不通

    (2) 使用 vncview 工具連線後彈出 Unencryption connection 錯誤, 或 telnet 5901端口後報錯: Unencryption connection

3) 使用 # systemctl status vncserver@:1.service 查看服務狀態不一定準確, 尤其是在異常處理階段

     建議使用dos命令 telnet 來測試服務是否啟動, 或者使用 # lsof -i:5901

4) 異常處理階段建議關閉防火牆:

    # systemctl stop iptables.service

    # systemctl disable iptables.service

    # systemctl stop firewalld.service

    # systemctl disable firewalld.service