安裝 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 , 文件內容如下:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill 1 > /dev/null 2>&1 || :'
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 || :'
[Install]
WantedBy=multi-user.target
備注:如果不是 root用戶,則以下一行需要修改為:
PIDFile=/home/user001/.vnc/%H%i.pid
重新加載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:vncviewer 連接時報錯:connect: Connection refused (10061)
解決方法: 在 vncviewer 輸入 IP 地址時 加上桌面號, 即 vncserver@:1.service 中的 1
以本文為例, 輸入 ip 為 : 192.168.1.100:1 就可以了.
問題3:不能停止服務
使用以下命令不能停止服務
# 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
5) 如果沒有安裝圖形界面, 將不能直接使用 vncserver, 可以安裝成功,但無法正常啟動vncserver服務.
安裝圖形界面命令如下:
# yum groupinstall "X Window System"
# yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
設置默認啟動圖形界面
# unlink /etc/systemd/system/default.target
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
# reboot