Centos
無法通過工作 VPN 連接到 CentOS 7/8 螢幕共享 (VNC)
和大多數人一樣,我們是WFH。通過聊天/電話解決問題變得越來越困難,因此我們希望使用與作業系統捆綁在一起的 CentOS“螢幕共享”功能,以允許支持人員連接到使用者電腦以幫助他們解決問題。支持人員還將使用內置客戶端
vinagre
選擇VNC
為連接類型。所有使用者都連接到配置為允許內部主機相互通信的 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
?知道問題可能是什麼嗎?
檢查
netstat
和firewalld
是正確的,但有一些提示:
- 禁用
firewalld
並不意味著您沒有設置任何防火牆,即netfilter
可以通過iptables
and控制nftables
,因此您可能也需要檢查一下。$ iptables -nL $ nft list tables
- 當您進行網路服務診斷時,請始終檢查 PID/程序名稱,即
netstat -nltp
或ss -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
PS:
我記得在某處讀到 tcp6 連接映射到 tcp4 連接,所以這應該不是問題。
它被稱為雙棧模式。