SSH over VPN over WiFi 热点不工作

SSH over VPN over WiFi 热点不工作

我设置了一个 Netscreen vpnc VPN 隧道,我从不同的 Linux 机器(Ubuntu、Lubuntu、Antergos)连接它,并且所有这些都显示相同的行为。

当我使用连接到计算机的 USB 调制解调器连接到 Internet 时,我可以连接 VPN 隧道并使用任何服务 - HTTP、HTTPS、Ping、SSH - 然后按预期进行。

然而,如果我通过 WiFi 热点连接到互联网(并且我已经测试了几个不同的热点,包括家庭、办公室和一些免费的公共 WiFi),则似乎只有 HTTP、HTTPS 和 PING 可以工作,而 SSH 则停留在中间状态。初步谈判:

$ ssh -v [email protected]
OpenSSH_6.7p1 Ubuntu-5ubuntu1.4, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 123.45.67.89 port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
[ ... cut ... ]
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1
debug1: match: OpenSSH_5.1 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP

一段时间后:

Connection closed by 123.45.67.89

路由设置方式与连接 USB 调制解调器时相同,并且 iptables 为空。为什么它不起作用,我必须做什么才能让它起作用?

答案1

理想情况下,热点和客户端上的最大传输单元 (MTU) 大小应相同,但客户端的大小不得超过热点的大小。

降低客户端隧道设备的MTU大小,例如:

$ ip addr show dev tun0
6: tun0: <POINTTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1412 qdisc pfifo_fast state UNKNOWN group default qlen 500

因此,这里的 MTU 大小为 1412 字节。降低一点:

$ ip link set tun0 mtu 1000

瞧,ssh 也可以工作了。

尝试使这种改变持久化必须单独完成。


这个问题概述于维基百科

终端节点看到的 MTU(例如 1500)与路径 MTU 之间的差异会导致路径 MTU 发现生效,并可能导致某些配置不当的防火墙后面的站点无法访问。

感谢@Jakuje 指出了这一点。

相关内容