Mac-Osx

mac os x 的 iptables 等價物

  • March 29, 2018

我想將請求轉發192.168.99.100:80127.0.0.1:8000。這就是我在linux中使用的方法iptables

iptables -t nat -A OUTPUT -p tcp --dport 80 -d 192.168.99.100 -j DNAT --to-destination 127.0.0.1:8000

我如何在 MacOS X 中做同樣的事情?我嘗試了一些ipfw命令組合,但沒有取得多大成功:

ipfw add fwd 127.0.0.1,8000 tcp from any to 192.168.99.100 80

(對我來說,成功是將瀏覽器指向http://192.168.99.100並從我執行的開發伺服器上獲得響應localhost:8000

所以我找到了一種方法來做到這一點。我不確定這是否是首選方式,但它有效!在你最喜歡的外殼上:

sudo ifconfig lo0 10.0.0.1 alias
sudo ipfw add fwd 127.0.0.1,9090 tcp from me to 10.0.0.1 dst-port 80

(別名 tolo0似乎是缺失的部分)

如果您希望(假)域指向這個新別名,請確保 /etc/hosts 包含以下行:

10.0.0.1 www.your-domain.com

我能夠使用Mac 10.10.2 上的ifconfigand命令來完成這項工作。pfctl通過以下方法,我成功地映射127.0.0.1:3000mydomain.com我的機器上的本地。

在命令行中輸入以下兩個命令以將連接轉發127.0.0.1:300010.0.0.1

sudo ifconfig lo0 10.0.0.1 alias
echo "rdr pass on lo0 inet proto tcp from any to 10.0.0.1 port 80 -> 127.0.0.1 port 3000" | sudo pfctl -ef -

然後編輯您的/etc/hostsor/private/etc/hosts文件並添加以下行以將您的域映射到10.0.0.1.

10.0.0.1 mydomain.com

保存主機文件後,刷新本地 DNS:

sudo discoveryutil udnsflushcaches

現在mydomain.com在瀏覽器中打開,您將看到託管在您的本地主機埠(即127.0.0.1:3000)上的伺服器。基本上,此過程將一個映射<ip>:<port>到一個新的<ip>,以便您可以映射該 IP 的主機。

引用自:https://serverfault.com/questions/102416