我有一个公共 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。
链条也可以向前,这取决于您的设置。