当服务未运行时有条件地丢弃数据包

当服务未运行时有条件地丢弃数据包

我有一个公共 IP 为 1.2.3.4 的路由器,它会丢弃任何传入的数据包:外部请求不会得到任何响应。

我设置了一个端口转发,将一个端口 (1234) 转发到本地 PC 的端口 22。到目前为止一切顺利:当 SSH 服务器在本地 PC 上运行时,我可以使用 来从外部进行连接ssh 1.2.3.4:1234

当服务器未运行时,我收到快速Connection refused错误。是否可以配置 iptables(我想是在本地 PC 上)以在服务器未运行时丢弃数据包而不是拒绝它们?

如果可能的话,我想保持其余配置不变,例如本地 PC 仍然应该拒绝其他所有内容。

答案1

这应该可以

iptables -I OUTPUT -p tcp --tcp-flags ALL RST,ACK -j DROP

当没有人监听端口时,会发送 RST/ACK。但您希望保留 RST 以供合法使用。您还可以使用状态标志 ESTABLISHED 来确保在该状态下允许 RST。

链条也可以向前,这取决于您的设置。

相关内容