VNC允许Linux系统可以类似实现像Windows中的远程桌面访问那样访问Linux桌面。
首先试试服务器装了VNC没
[root@wic~]# rpm -q tigervnc tigervnc-server
没安装的话会直接出现
packagetigervnc isnotinstalled
packagetigervnc-server isnotinstalled
如果没有安装X-Windows 桌面的话要先安装Xwindows
CentOS7安装时选择GUI安装包跳过,总之,有个窗口环境就行
[root@wic~]# yum check-update
[root@wic~]# yum groupinstall "X Window System"
[root@wic~]# yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
[root@wic~]# unlink /etc/systemd/system/default.target
[root@wic~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.targe
t[root@wic~]# reboot
第一步,安装VNC packages:
[root@wic~]# yum install tigervnc-server -y
第二步,修改配置信息,在/etc/systemd/system/下建立文件夹vncserver@:1.service 把example config 文件从/lib/systemd/system/[email protected]复制到里面
[root@wic ~]# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
然后打开这个配置文件/etc/systemd/system/vncserver@:1.service替换掉默认用户名找到这一行
ExecStart=/sbin/runuser -l -c"/usr/bin/vncserver %i"
PIDFile=/home//.vnc/%H%i.pid
这里我直接用root 用户登录,所以我替换成
ExecStart=/sbin/runuser -l root -c"/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
如果是其他用户的话比如linoxide替换如下
ExecStart=/sbin/runuser -l linoxide -c"/usr/bin/vncserver %i"
PIDFile=/home/linoxide/.vnc/%H%i.pid
第三步,重加载 systemd
[root@wic~]# systemctl daemon-reload
第四步,为VNC设密码(必须)
[root@wic~]# vncpasswd
输入两次密码
第五步,由于我这边的Centos 7 是用iptable防火墙的所以
vim/etc/sysconfig/iptables
在合适位置加上
-A INPUT -mstate--stateNEW -mtcp -p tcp --dport5900:5903-j ACCEPT
重启iptable
serviceiptables restart
如果是用Centos 7 默认防火墙的需要
[root@wic~]# firewall-cmd --permanent --add-service vnc-server
[root@wic~]# systemctl restart firewalld.service
如果还是有问题可以试试关闭防火墙
停止并禁用防火墙;
systemctl stopfirewalld.service
systemctl disablefirewalld.service
如果报错:
Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.
尝试将/tmp下以 .X11开头的文件都删除
#rm -rf /tmp/.X11-unix/*
或者
#vi /etc/systemd/system/vncserver@:1.service ,将Type=forking 修改为Type=simple
第六步,设默认启动并开启VNC
[root@wic~]# systemctl enable vncserver@:1.service
[root@wic~]# systemctl start vncserver@:1.service
这样基本上Centos 端就设好了,Windows 端要去下一个VNC Viewer 的软件。连接一下试试看着有点简陋但是上去了的
Centos 7 firewall 命令:
firewall-cmd --state 查看防火墙状态
firewall-cmd --list-all 查看防火运行列表
查看已经开放的端口:
firewall-cmd --list-ports
开启端口
firewall-cmd --zone=public --add-port=8801/tcp --permanent
命令含义:
–zone #作用域
–add-port=8801/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
删除端口
firewall-cmd --permanent --remove-port=8801/tcp
重启防火墙
firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动