我使用共享密钥在两个 gentoo 盒之间建立了 openvpn(两端的版本 2.1_rc15)连接。它在大多数情况下工作正常。我在 vpn 上使用 mysql、http、ftp、scp,没有任何问题。但是当我通过 vpn 从客户端 ssh 到服务器时,奇怪的事情发生了。我可以登录,我可以执行一些命令。但是如果我尝试运行像 top 这样的 ncurses 应用程序,或者我尝试 cat 一个文件,连接将停止,我将不得不切断 ssh 会话。
例如,我可以执行“echo blah; echo .; echo blah”,它将通过 ssh 会话输出三行文本。但是如果我执行“cat /etc/motd”,会话将在我按下回车键的那一刻冻结。
我在我的 mac 上编译了 openvpn 2.1.1 并从我的 gentoo 客户端复制了我的 config 目录。mac 连接和 ssh 会话运行良好,没有冻结。
然后我在我的旧 gentoo 机器(2.6.26 内核)上编译它,由于硬盘驱动器快坏了,我正在退休,并且通过 ssh 也可以完美地工作。
为什么它在我全新的 gentoo box 上失败?我试过编译三个不同的内核,以防万一,但除此之外,我能想到的旧的和新的 gentoo box 应该没有区别。
关于有什么问题的任何建议?
我有与这里描述的完全相同的问题,但我不能要求作者澄清,因为我是一个新用户,我不能对此发表评论,所以我发布了一个新问题(我尝试在该问题下发布作为在同一线程上参考的答案,它被删除,因为它没有提供答案......)。
问题:是否有人对如何排除故障和/或确定该线程中描述的 TCP 问题的根本原因有任何建议?就好像远程端不接受 VPN 客户端发送的 ACK 消息一样。
我的设置和原问题一模一样:CentOS服务器(拓扑子网),两台客户端,一台CentOS,一台Ubuntu14.03。当我从 ubuntu-client 到 centos-client 执行 'ssh cat abc.txt' 时,centos 的 vpn 连接停止。恢复它的唯一方法是重新启动 openvpn 服务器(在 centos 机器上)和 centos 上的 openvpn 客户端 - 只是重新启动 centos 客户端连接并不能使其运行(它会在 ~ 1-2 分钟,但我无法再通过 vpn ping 或 ssh 盒子)。我还尝试了在其他线程(tun-mtu 1300 / fragment 1100 / mssfix 等)中找到的所有 MTU 调整建议,但没有一个有帮助。
更奇怪的是,如果我从 Ubuntu 执行相同的 ssh-cat,使用 CentOS 服务器 vpn 连接到 centos-client 的公共 IP 地址(从而绕过 centos-client<->centos-server vpn 腿),一切正常(永远没有摊位)。
更新 1:我发现有一种解决方法可以解决此问题,但它非常难看。在这里发布,以防万一有人提出任何其他想法/提示。当我在 openvpn 服务器(不是在客户端,仅在服务器上)上将详细级别设置为 9 时,问题再也不会发生。动词 9 导致 …