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的build议,我试图只指定目标IP,所以我把rdr规则转换成了mac os x语法:

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

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

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

不是任何方式的专家,认为应该这样做。 由于我使用了除iptables以外的任何东西,所以长期以来

您可以尝试为Mac OS Xfindrinetd的端口。