sshuttleというクールなユーティリティがあります。ipfw
これまでは、パケットの転送に依存していました。Mavericks ではほとんどが壊れてipfw
いるようで、今は 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
すべてのトラフィックを 127.0.0.1 (localhost) ポート 12300 に転送します。ただし、TCP パケットの宛先 IP またはポートは変更しません。これは、元の宛先に関する情報を使用してパケットを別のネットワークに転送するため、sshuttle にとって重要です。
PacketFilter の世界で見つけた最も近いルールは次のとおりです。
rdr pass proto tcp from any to any -> 127.0.0.1 port 12300
このルールはトラフィックを 127.0.0.1 (localhost) ポート 12300 に送信しますが、宛先アドレスを 127.0.0.1 に書き換えます。
OS X で必要な動作を取得する方法についてのアイデアはありますか?