无法通过工作 VPN 连接到 CentOS 7/8 屏幕共享(VNC)

无法通过工作 VPN 连接到 CentOS 7/8 屏幕共享(VNC)

和大多数人一样,我们也是在家办公。通过聊天/电话解决问题变得越来越困难,因此我们希望使用随操作系统捆绑的 CentOS“屏幕共享”功能,让支持人员能够连接到用户机器以协助解决问题。支持人员还将使用内置客户端vinagreVNC选择连接类型。

所有用户都连接到 VPN,该 VPN 配置为允许内部主机相互通信。我们可以 ping 其他主机、查看它们正在运行的服务等。这是我的机器的屏幕共享设置。

屏幕共享设置窗口

当我查看 netstat 时,我看到端口5900正在监听tcp6。我认为问题是当每个主机 IPv4 接口都设置为默认连接时,底层 VNC 服务器正在监听 IPv6,但我记得在某处读到过tcp6连接映射到tcp4连接,所以这应该不是问题。这是我的 netstat 输出:

$ sudo netstat -nlt 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:10391         0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:29754         0.0.0.0:*               LISTEN     
tcp6       0      0 :::5355                 :::*                    LISTEN     
tcp6       0      0 :::5900                 :::*                    LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 :::9090                 :::*                    LISTEN    

我认为是防火墙的问题,但我的机器和客户端机器都已firewalld禁用。

nmcli以下是显示设置的输出Wired Connection 1

enp57s0u1: connected to Wired connection 1
    "Realtek RTL8153"
    ethernet (r8152), 8C:04:BA:67:52:16, hw, mtu 1500
    ip4 default
    inet4 192.168.1.123/24
    route4 0.0.0.0/0
    route4 192.168.1.0/24
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64
    route6 fe80::/64
    route6 ff00::/8

最后,我测试了启用 SSH,它成功了。用户能够连接并被提示进行身份验证(我们并没有让他们真正登录)。这让我相信这是底层 VNC 服务器本身的问题,可能与它在上面的监听有关tcp6

知道可能是什么问题吗?

答案1

检查netstatfirewalld是正确的,但有几点提示:

  1. 禁用firewalld并不意味着你没有设置任何防火墙,即netfilteriptables可以由和控制nftables,因此您可能也需要检查这一点。
    $ iptables -nL
    $ nft list tables
  1. 在进行网络服务诊断时,请务必检查 PID/进程名称,即netstat -nltpss -nltp。当出现问题时,您始终可以检查所述服务的日志和配置。

如果你可以添加 iptables 命令以允许 5900

应该是这样的

$ iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT
$ iptables -A INPUT -p udp -m state --state NEW -m udp --dport 5900 -j ACCEPT

如果你正在使用nftables,你可以做类似的事情

$ nft add table inet t_gnome_vnc
$ nft add chain inet t_gnome_vnc c_input
$ nft add rule inet t_gnome_vnc c_input tcp dport 5900 accept
$ nft add rule inet t_gnome_vnc c_input udp dport 5900 accept

附言:

我记得在某处读到过 tcp6 连接映射到 tcp4 连接,所以这应该不是什么问题。

它被称为双栈模式

相关内容