由于国情在此,所以从内地直连 H 地的 SSH 很快就会被阻断;但是连接 A 国的服务器则不会受到如此干扰。由于 H 地和 A 国的机器之间已经通过 WireGuard 连接起来,所以自然就产生了 “能不能通过在 A 国机器上设置防火墙规则 reroute 某个端口的流量到 H 地的机器上实现曲线救国呢” 的想法。
通过 Google 和 ChatGPT,得出的答案都是类似的:
1 | # 1,启用 IP Forwarding |
但是这样下来 ssh -p 10022 MachineA_IP
依然是不通的。百思不得其解,因为 nat 表的那几条规则是真的在转发数据包了,但是就是不通。后来看到 Stack Exchange 上关于这个话题的帖子之后,被启发到可能是 FORWARD chain 出现了问题。给 FORWARD chain 加了临时 LOG 进行分析之后发现,由于 FORWARD 的 policy 是 drop,所以如果不添加规则来接受这些要被转发的包,那么它们也会被 drop 的。所以还需要以下命令来让转发能够完成:
Bash
1 | # 去程 accept |