我在两个 gentoo 机器之间使用共享密钥建立了一个 openvpn(两端均为 2.1_rc15 版本)连接。大部分情况下,它工作正常。我通过 vpn 使用 mysql、http、ftp、scp,没有任何问题。但是当我通过 vpn 从客户端 ssh 到服务器时,发生了奇怪的事情。我可以登录,可以执行一些命令。但是,如果我尝试运行 ncurses 应用程序(如 top),或者尝试 cat 文件,连接就会停止,我必须切断 ssh 会话。
例如,我可以执行“echo blah; echo .; echo blah”,它会在 ssh 会话中正常输出三行文本。但如果我执行“cat /etc/motd”,会话会在我按下回车键时冻结。
我在 Mac 上编译了 openvpn 2.1.1,并从我的 gentoo 客户端复制了我的配置目录。Mac 已连接,ssh 会话运行正常,没有冻结。
然后我在我较旧的 gentoo 机器(2.6.26 内核)上对其进行了编译(由于硬盘坏了,我打算将其淘汰),并且通过它进行 ssh 也运行良好。
为什么在我的全新 gentoo 盒子上会失败?为了防止出现这种情况,我尝试编译了三个不同的内核,但除此之外,我认为我的新旧 gentoo 盒子之间应该没有区别。
对于哪里出了问题有什么建议吗?
答案1
答案2
这个命令帮我解决了这个问题:
$ sudo ip link set dev tun0 mtu 1350 && echo ":)"
您可以使用以下方式验证 tun0 设置
$ ip a s
干杯!
答案3
答案4
我使用了 tunnelblick 而不是 OpenVPN,但找不到 MTU 值的配置。相反,我在 的输出中找到了 VPN 的接口ifconfig
(在我的情况下是utun0
),并手动为其设置了 MTU,如下所示:
ifconfig utun0 mtu 576
此后,我的 ssh 会话不再冻结。