配置VNC远程桌面,操作起来既可以说繁琐,也可以说轻松。关键步骤集中在修改几个配置文件、设定专属密码以及开放相应端口。下面我把完整流程梳理清楚,每一步都亲身踩过坑,按照步骤操作基本不会遇到问题。
先从基础配置入手:编辑 /etc/sysconfig/vncserver 文件,加入以下两行内容:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 -0.0.0.0"
第一行定义哪个用户使用哪个显示编号,这里让 root 用户使用 :1;第二行设置分辨率(可根据需要调整)和监听地址,-0.0.0.0 表示监听所有网络接口,如果只想本地访问可以改为 127.0.0.1。
接着,使用 vncpasswd 命令设置 VNC 专用密码——请注意这个密码与系统登录密码无关,仅用于远程连接时的身份验证。
然后启动 VNC 服务:执行 vncserver(或者 service vncserver start)。首次运行时会自动生成 .vnc 目录和初始的 xstartup 启动脚本。
启动前最好先关闭防火墙,避免被拦截:运行 service iptables stop。当然,生产环境不建议直接关闭防火墙,正确的做法是单独放行 VNC 端口(后面会说明)。
接下来重点调整 .vnc/xstartup 启动脚本。默认内容较为简陋,需要改成能启动完整桌面环境的版本:
#!/bin/sh
vncconfig -iconic &
# 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
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm
关键操作是取消 unset SESSION_MANAGER 和 exec /etc/X11/xinit/xinitrc 这两行的注释符号,否则连上去看到的只是一个简陋的 xterm 和 twm 窗口管理器,根本不是完整的图形桌面。
完成以上步骤后,在 Windows XP 客户端打开 VNC Viewer,输入 Fedora 的 IP 地址加上 :1(例如 192.168.1.100:1),再输入刚才设置的 VNC 密码即可连接。如果连接失败,十有八九是防火墙没有放行对应端口。
那么如何单独开放端口?编辑 /etc/sysconfig/iptables 文件,加入以下规则:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
编号 5901 对应显示编号 :1(即 5900 + 1)。如果需要同时支持多个用户,按相同方式开放 5902(对应 :2)、5903 等端口。同时修改 /etc/sysconfig/vncserver 中的 VNCSERVERS 行,例如要支持两个用户:
VNCSERVERS="1:root 2:keith"
这样 root 使用 :1,keith 使用 :2,各自拥有独立的桌面会话。
最后补充一个小技巧:在 VNC Viewer 中按下 F8 键可以调出菜单,其中包含全屏切换选项,远程操作时非常实用。
