我需要将到任何地址端口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连接到服务器,但可以通过默认网关连接。
你知道了吗?我正在尝试在本地主机和外部服务之间的本地主机上插入透明代理,但没有运气。我的猜测是OS X在这方面刚刚加入Windows,不再在系统防火墙级别提供NAT支持,但我仍然希望可以做到这一点。
—
foxx1337
不,我放弃了Linux。
—
freedev
实际上,正是我所做的;感谢您的更新
—
foxx1337