基于性能、通用性等因素考虑,阿里云官方公共Linux系统镜像默认没有安装VNC(Virtual Network Computing)服务组件。如果您希望图形化访问Linux实例,需要先在实例上安装VNC Server并安装图形界面。
本文介绍了如何在CentOS 6.8、CentOS 7.2和Ubuntu 14.04上安装配置VNC Server,实现图形化访问Linux实例。
如果您的实例使用CentOS镜像,可以使用脚本自动安装VNC Server和GNOME桌面环境。具体操作,请参考 在Linux实例上自动安装并运行VNC Server。
前提条件
您已经在本地安装了VNC连接工具,比如 TightVNC Viewer。
在CentOS 6.8上安装VNC Server
这部分以在CentOS 6.8上安装TigerVNC Server和GNOME为例,说明如何安装配置VNC Server。
- 远程连接Linux实例。
- 运行以下命令安装GNOME桌面。
yum groupinstall GNOME Desktop Environment -y
安装需要较长时间,请您耐心等待。
- 运行以下命令安装VNC Server。
yum install -y tigervnc-server
- 运行以下命令将VNC Server配置为开机自动启动。
chkconfig --level 345 vncserver on
- 运行以下命令启动VNC Server,并按界面提示设置VNC连接密码。
vncserver
注意:
首次启动会要求设置密码,以后您可以运行vncpasswd
命令修改连接密码。 - 按以下步骤修改 /root/.vnc/xstartup 文件,配置使用GNOME桌面:
- 运行命令
vim /root/.vnc/xstartup
。 - 按
i
键进入编辑模式。 - 在文件最后一行,注释掉
twm &
,并添加一行gnome-session &
。 - 按
Esc
键退出编辑模式,再输入:wq
保存并退出。
- 运行命令
- 按以下步骤在 /etc/sysconfig/vncservers 文件中配置监听端口和环境参数:
- 运行命令
vim /etc/sysconfig/vncservers
。 - 按
i
键进入编辑模式。 - 添加以下内容:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1200x800"
- 按
Esc
键退出编辑模式,再输入:wq
保存并退出。
- 运行命令
- (可选)运行不同的命令完成其他设置:
- 运行以下命令允许root账号访问图形界面。
sed -i 's/.!= root./#&/' /etc/pam.d/gdm
- 如果报以下错误,运行命令
dbus-uuidgen >/var/lib/dbus/machine-id
生成新的machine-id。D-Bus library appears to be incorrectly set up; failed to read
machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
- ECS不允许开启SELinux服务和NetworkManager服务。如果您开启了这些服务,运行以下命令修改配置。
vi /etc/selinux/config # 检查SELinux服务。如果SELINUX对应的值不是disabled,必须改为disabled。
chkconfig --del NetworkManager # 关闭NetworkManager服务
- 运行以下命令允许root账号访问图形界面。
- 运行以下命令重启VNC Server,使配置生效。
service vncserver restart
- 运行命令
ps -ef | grep vnc
确认服务是否已经启动。如果返回以下类似结果,说明服务已经启动。
由返回结果可知,服务使用了TCP 5901端口。 - (可选)如果您的实例上开启了防火墙,需要设置防火墙允许VNC访问。
举例:
以iptables为例,您需要做如下设置:iptables -A INPUT -p tcp --dport 5901 -j ACCEPT #放行TCP 5901端口
service iptables save
- 登录 ECS管理控制台,在实例所在安全组中 添加安全组规则,放行TCP 5901端口。
- 在本地机器的VNC Viewer上连接实例。具体操作步骤,请参考 在 Linux 实例上自动安装并运行 VNC Server 的描述。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。
在CentOS 7.2上安装 VNC Server
这部分以在CentOS 7.2上安装TigerVNC Server和GNOME为例,说明如何安装配置VNC Server。
- 远程连接Linux实例。
- 运行以下命令安装GNOME桌面。
yum groupinstall GNOME Desktop Environment -y
安装需要较长时间。
- 运行以下命令安装VNC Server。
yum install tigervnc-server -y
- 按以下步骤修改VNC Server配置文件,设置用户名(如本示例中的root):
- 运行命令
vim /lib/systemd/system/vncserver@.service
。 - 按
i
键进入编辑模式。 - 将
User=<User>
、ExecStart
和PIDFile
的内容替换为以下内容。User=root
Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
- 按
Esc
键退出编辑模式,再输入:wq
保存并退出。
- 运行命令
- 运行以下命令,将 /lib/systemd/system/vncserver@.service 改为 /lib/systemd/system/vncserver@:1.service。
mv /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
- 运行以下命令重启systemd。
systemctl daemon-reload
- 运行命令
vncpasswd
,并按界面提示设置VNC Server连接密码。 - (可选)ECS不允许开启SELinux服务和NetworkManager服务。如果您开启了这些服务,运行以下命令修改配置。
vi /etc/selinux/config # 检查SELinux服务。如果SELINUX对应的值不是disabled,必须改为disabled。
chkconfig --del NetworkManager # 关闭NetworkManager服务
- 运行以下命令设置开机启动VNC Server。
systemctl enable vncserver@:1.service
- 运行以下命令启动VNC Server。
systemctl start vncserver@:1.service
- 运行命令
ps -ef | grep vnc
确认服务是否已经启动。如果返回以下类似结果,说明服务已经启动。
由返回结果可知,服务使用了TCP 5901端口。 - (可选)如果您的实例上开启了防火墙,需要设置防火墙允许VNC访问。
举例:
以firewalld为例,您需要做如下设置:firewall-cmd --permanent --add-service vnc-server #允许VNC访问
systemctl restart firewalld.service # 重启firewalld
- 登录 ECS管理控制台,在实例所在安全组中 添加安全组规则,放行TCP 5901端口。
- 在本地机的VNC Viewer上连接实例。具体操作步骤,请参考 在 Linux 实例上自动安装并运行 VNC Server 的描述。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。
在Ubuntu 14.04上安装VNC Server
这部分以在Ubuntu 14.04上安装vnc4server和GNOME为例,说明如何安装配置VNC Server。
- 远程连接Linux实例。
- 运行命令
apt-get update
更新源。 - 运行以下命令安装vnc4server。
apt-get install vnc4server -y
- 运行以下命令开启VNC服务并按界面提示设置连接密码。
vnc4server
注意:
首次启动会要求设置密码,以后您可以使用vncpasswd
修改连接密码。如果返回结果里出现类似下图所示的
New ':1 (root)' desktop is :1 (代表主机名)
,表示vnc4server启动成功。程序会自动在当前用户(本示例中为root)主目录下产生一个.vnc
目录。
- 运行命令
ps -ef | grep vnc
确认服务是否已经启动。如果返回以下类似结果,说明服务已经启动。
由返回结果可知,服务使用了TCP 5901端口。 - 运行以下命令安装GNOME桌面环境。
apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
安装需要较长时间,请您耐心等待。
- (可选)运行以下命令备份原有xstartup文件。
cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
- 按以下步骤修改vnc4server启动文件。
- 运行以下命令打开文件。
vim ~/.vnc/xstartup
- 按
i
键进入编辑模式。 - 将文件内容替换为以下内容。
Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-panel
gnome-settings-daemon
metacity
nautilus
gnome-terminal
- 按
Esc
键退出编辑模式,再输入:wq
保存并退出。
- 运行以下命令打开文件。
- 依次运行以下命令生成新的会话。
vncserver -kill :1 #杀掉原来的桌面进程(假设桌面号为:1)
vncserver :1 # 生成新的会话
- 登录 ECS管理控制台,在实例所在安全组中 添加安全组规则,放行TCP 5901端口。
- 在本地机的VNC Viewer上连接实例。具体操作步骤,请参考 在 Linux 实例上自动安装并运行 VNC Server 的描述。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。