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