云服务器 ECS Linux 安装 VNC Server 实现图形化访问配置说明
阿里云官方公共 Linux 系统镜像,基于性能及通用性等因素考虑,默认没有安装 VNC 服务组件。本文对常见操作系统下的 VNC Server 安装配置进行简要说明。
本文中仅讨论VNC的安装,关于图形界面的安装,您可以参考该知识点。
CentOS 6.5 安装 VNC Server
CentOS 6.5 系统环境下,可以参阅如下步骤进行 VNC Server 的安装配置。
安装
使用如下指令安装 VNC Server:
yum install -y tigervnc-server
配置
- 配置为开机自启动
使用如下指令将服务配置为开机自动启动:chkconfig —level 345 vncserver on
- 配置客户端连接密码:
输入以下命令后进行 VNC 密码的设置: -
vncserver
- 配置使用 GNOME 桌面:
修改 /root/.vnc/xstartup文件,把最后的 twm & 删除后,在添加如下内容:
gnome-session &
- 配置监听端口和环境参数:
修改/etc/sysconfig/vncservers 文件添加以下内容:VNCSERVERS=”1:root”VNCSERVERARGS[1]=”-geometry 1200x800”
- 重启服务使配置生效
service vncserver restart
允许 root 访问图形界面和生成新的 machine-id
使用如下指令进行配置:
sed -i ‘s/.!= root./#&/‘ /etc/pam.d/gdm
dbus-uuidgen>dbus-uuidgen >/var/lib/dbus/machine-id
关闭 selinux 和 NetworkManager 服务
1.检查 selinux 服务并关闭
vi /etc/selinux/config
确认里面的 SELINUX 字段的值是 disabled,如果不是则改为 disabled。
2.关闭 NetworkManager 服务
chkconfig —del NetworkManager
测试登录
CentOS7 安装 vncserver
1. yum 安装 vnc
yum install tigervnc-server -y
2. 配置 vnc
编辑配置文件,找到下面这几行,替换所需用户名。比如,用户名是 root ,就用 root 来替换 :
$ vim /lib/systemd/system/[email protected].service
ExecStart=/sbin/runuser -l -c "/usr/bin/vncserver %i"
PIDFile=/home//.vnc/%H%i.pid
示例:
替换为:
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/home/root/.vnc/%H%i.pid
将 /lib/systemd/system/[email protected] 改为 /lib/systemd/system/[email protected]:1.service
mv /lib/systemd/system/[email protected].service /lib/systemd/system/[email protected]:1.service
重启 systemd
systemctl daemon-reload
3. 设置 VNC 密码。
要设置某个用户的密码,必须要有能通过 sudo 切换到用户的权限。如果当前用户已经有 root 这里我用 root 的权限,执行“直接vncpasswd”就可以了。
执行 vncpasswd
4. 开启服务
设置开机启动:
systemctl enable [email protected]:1.service
启动服务:
systemctl start [email protected]:1.service
如果执行 systemctl start [email protected]:1.service 出现下面错误,重启服务器即可:
重启后。即可使用 vnc 了。可以使用 ps 命令确认服务已经启动:
5.客户端连接
完成前述配置后,在客户端安装 realvnc viewer 等 VNC 客户端,然后输入服务器的 IP 地址加 VNC 端口号(默认为 5901),进行 VNC 的连接:
出现下图。点击continue
输入设置的 vnc 密码:
注意:如果服务器开启了防火墙,则需要允许 vnc 通过防火墙
firewall-cmd --permanent --add-service vnc-server
重启防火墙
systemctl restart firewalld.service