那里有一个名为sshuttle的酷工具.它过去依赖于ipfw转发数据包.似乎ipfw在Mavericks中大部分都被打破了,建议现在就使用PacketFilter.
我花了大部分时间看着PacketFilter,它看起来ipfw有一个PacketFilter不支持的功能(希望我错了).
以下规则:
ipfw -q add 12300 fwd 127.0.0.1,12300 tcp from any to any not ipttl 42 keep-state setup
Run Code Online (Sandbox Code Playgroud)
将所有流量转发到127.0.0.1(localhost)端口12300.但是,它不会更改TCP数据包中的目标IP或端口.这对于sshuttle非常重要,因为它使用有关原始目标的信息将数据包转发到另一个网络.
我在PacketFilter世界中可以找到的最接近的规则是:
rdr pass proto tcp from any to any -> 127.0.0.1 port 12300
Run Code Online (Sandbox Code Playgroud)
此规则会将流量发送到127.0.0.1(localhost)端口12300,但它也会将目标地址重写为127.0.0.1.
关于如何在OS X中获得sshuttle行为需求的任何想法?