第9章 TIGERVNC远程登陆配置
白魁耀
白魁耀
统计、机器学习与保险大数据
2 人赞同了该文章
TIGERVNC是允许你远程控制图形桌面系统的工具。
TIGERVNC采用主-客网络:主机、服务端共享其输出(VNCSERVER),客户机(VNCVIEWER)连接到主机。
注意:FEDORA的TINGERVNC使用SYSTEMD管理配置信息。/etc/sysconfig/vncserver已被/etc/systemd/system/
vncserver@.service
代替。
9.1 VNC 服务端
VNCSERVER是启动VNC桌面的工具。VNCSERVER允许用户并行运行不同的会话,既不限制客户端数量,也不限制从哪里连接。
9.1.1 安装VNC服务
~]# dnf install tigervnc-server
9.1.2 配置VNC 服务
1.配置文件是/etc/systemd/system/
vncserver@.service
。可以通过复制 /lib/systemd/system/
vncserver@.service
来创建。
~]# cp /lib/systemd/system/
vncserver@.service
/etc/systemd/system/
vncserver@.service
没有必要在文件名中包括显示设备编号,SYSTEMD会自动建立正确的实例(把%i自动替换)。对单个用户来讲没有必要对文件改名。对多个用户来讲,每个用户都需要一个唯一的服务文件,这样就需要把用户名字加到文件名里了。
2.修改/etc/systemd/system/
vncserver@.service
文件,把USER改成实际用户的名字,其它地方不用改。-geometry参数会指定VNC桌面的大小,默认为1024*768。
ExecStart=/sbin/runuser -l USER -c “/usr/bin/vncserver %i -geometry 1280×1024″
PIDFile=/home/USER/.vnc/%H%i.pid
3.保存更改。
4.为了使更改生效,应使用以下命令:
~]# systemctl daemon-reload
5.设定密码(先切换成对应的用户):
~]# su – USER
~]$ vncpasswd
Password:
Verify:
重要:密码没有加密,有权限查看密码文件的用户可以看到密码。
9.1.2.1 配置两用户的VNC
如果你想配置多个用户远程登陆,则需要为每个用户都创建一个文件。
1.创建2个服务文件,比如
vncserver-USER_1@.service
和
vncserver-USER_2@.service
,USER需要替换成实际的用户。
2.分别设定密码:
~]$ su – USER_1
~]$ vncpasswd
Password:
Verify:
~]$ su – USER_2
~]$ vncpasswd
Password:
Verify:
91.3 启动VNC服务端
启动或启用服务,需要在命令行直接指定显示设备号。这个指定的设备会被SYSTEMD自动替换配置文件中%i。然后执行以下命令:
~]# systemctl start vncserver@:display_number.service
系统开机默认运行的配置方法如下:
~]# systemctl enable vncserver@:display_number.service
这样其它用户就可以通过VNC VIEWER连接到VNC SERVER了。
9.1.3.1 两用户独立显示的VNC配置
可以通过配置不同的显示设备号来实现,比如前面的配置文件名中加入设置设备号3和5:
~]# systemctl start vncserver-USER_1@:3.service
~]# systemctl start vncserver-USER_2@:5.service
9.1.4 关闭VNC会话
取消开机自动启动:
~]# systemctl disable vncserver@:display_number.service
关闭会话:
~]# systemctl stop vncserver@:display_number.service
9.2 VNC VIEWER
VNC VIEWER是显示和控制远程桌面的工具。
可以通过vncviewer -h查看相关参数。
9.2.1 安装VNC VIEWER
~]# dnf install tigervnc
9.2.2 连接到VNC SERVER
vncviewer address:port_number
ADDRESS可以使用IP地址或主机名。
例子9.1 单个客户端连接到VNC SERVER
如果IP地址是192.168.0.4,显示号是3的话:
~]$ vncviewer 192.168.0.4:3
9.2.2.1为VNC配置防火墙
FIREWALLD有可能会阻止非加密的连接。可以修改FIREWALLD配置来允许传输VNC数据包。使用-via参数,相关传输将默认通过SSH重定向传输。
提示:VNC SEVER默认端口为5900。实际使用时要配置的端口为5900+显示设备号,比如5900+2=5902。
FIREWALLD支持显示设备号0-3,如果大于3的话,需要另外配置。
流程9.2 在FIREWALLD中启用VNC服务
1.查看FIREWALLD配置:
~]$ firewall-cmd –list-all
2.允许VNC连接:
~]# firewall-cmd –add-rich-rule=’rule family=”ipv4″ source address=”192.168.122.116″
service name=vnc-server accept’
success
3.验证配置:
~]# firewall-cmd –list-all
public (default, active)
interfaces: bond0 bond0.192
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family=”ipv4″ source address=”192.168.122.116″ service name=”vnc-server” accept
使用指定端口或指定端口的范围可以使用 firewall-cmd的–add-port选项。比如要用是示设备号4:
流程9.3 FIREWALLD中打开端口
1.在PBULIC ZONE中的TCP TRAFFIC启用指定端口:
~]# firewall-cmd –zone=public –add-port=5904/tcp
success
2.显示配置的端口
~]# firewall-cmd –zone=public –list-ports
5904/tcp
删除配置的端口时可以用:firewall-cmd –zone=zone –remove-port=number/
protocol
9.2.3 使用SSH连接VNC
~]$ vncviewer -via user@host:display_number
例子9.2 使用- via选项
1.用SSH连接VNC
~]$ vncviewer -via
USER_2@192.168.2.101
:3
2.提示的时候输入密码然后回车。
3.显示远程桌面。
限制NVC权限
如果你只用加密传输,你可关闭非加密传输,在service配置文件里修改如下:
ExecStart=/sbin/runuser -l user -c “/usr/bin/vncserver -localhost %i”
这样VNC SERVER对于非加密传输将只接受本机,不再允许远程方式。
9.3 其它信息
略