PFsense 断开 SSH 连接

PFsense 断开 SSH 连接

我最近用 pfSense 替换了基于 Tomato 的路由器。我的 LAN 上有一个 CentOS7 VM,我可以通过端口转发从外部通过 SSH 连接到它。

从那时起,当我在 SSH 上放置“负载”时,连接就会断开。我举几个例子:

  • SSH 隧道到端口 80...DROP(将加载部分网页)
  • 运行一个输出较长的命令,如“ls -alR /”...DROP(在几屏文本之后)
  • 以 1 秒延迟时间运行“top”,至少一个小时...无 DROP
  • 空闲/至少一个小时内没有提示输入...无 DROP

似乎不会影响直接 HTTP 传输(测试文件大小 1.5GB)。

我对防火墙有一点经验,但对 pfSense 还是个新手。我尝试将一些防火墙优化设置为“保守”,并启用“清除无效 DF 位而不是丢弃数据包”。我还禁用了所有网络硬件卸载选项(校验和、tcp 分段和大型接收)。

这是一个奇怪的问题,我不知道该如何解决。希望这里有人能提供一些想法。

关于设置的一点介绍:

  • pfSense 2.4.4p2
  • 华硕 EEEbox
  • 带有用于 WAN 和 LAN 的 VLAN 的单个 NIC (Realtek)
  • Linksys E3000 作为 VLAN 交换机 (FreshTomato-ARM)
  • AT&T 光纤调制解调器直通至 PFsense

答案1

我们最近遇到了一个非常类似的问题:我们已经在网站上使用 pfSense 大约 5 年了,没有出现任何问题。大约 3 个月前,如果我们闲置超过 5 分钟,有时甚至只有 1 分钟,pfSense 就会突然开始断开 SSH 连接。SSH 终端提供的唯一消息是, packet_write_wait: Connection to X.X.X.X port 22: Broken pipe 这没什么帮助。

我们的 MNX 解决方案团队最终找到了罪魁祸首:我们的状态表。我们使用了大约 80% 的连接,根据 MNX 的数据,

我们认为问题在于,一旦达到 70% 的状态连接限制,PFSense 就会开始自动调整空闲 TCP 流量的超时值,这可能就是开始终止与服务器的空闲连接的原因。

这似乎与你所描述的非常吻合。你对 pfsense 施加的负载越多,它就越会自动调整你的 SSH 连接并导致它们被丢弃。你可以通过以下方式测试这一理论增加状态表的大小在我们增加了状态表的大小之后,我们不再看到之前持续一个月的连接中断导致的管道损坏错误。

相关内容