Mac OS X Lion-将端口 22 上的所有连接转发到外部 IP

Mac OS X Lion-将端口 22 上的所有连接转发到外部 IP

我需要将任何地址端口 22 的所有连接转发到不同的网关(即非默认网关)。首先我打算使用 ipfw 来执行此操作:

sudo ipfw add 5 fwd $EXTERNAL_IP,22 tcp from any to any 22 keep-state

但在 Mac OS X Lion 上它似乎不起作用。无论如何,查看 ipfw 文档我发现它已被弃用,我应该使用 pfctl。

所以我修改了/etc/pf.conf文件:

rdr proto tcp from $internal_ip to any port 22 -> $external_ip port 22

但没有运气。

有谁知道如何将本地应用程序生成的所有连接转换或转发到除端口 22 之外的任何地址到不同的网关/IP 地址?

更新

根据 Jake 的建议,我尝试仅指定目标 IP,因此我将 rdr 规则转换为 mac os x 语法:

rdr proto tcp from any to any port 22 -> $external_ip port 22

即使在这种情况下,我也没有得到预期的结果,即我可以通过 ssh 连接到我的服务器,但通过默认网关。

答案1

rdr pass on $internal_ip inet proto tcp from any to any port 22

无论如何,我都不是专家,但我认为应该这样做。长的我已经使用过 iptables 以外的任何东西很久了 :)

答案2

您可以尝试找到一个端口rinetd适用于 Mac OS X。

相关内容