Mac-Osx
mac os x 的 iptables 等價物
我想將請求轉發
192.168.99.100:80
到127.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
(別名 to
lo0
似乎是缺失的部分)如果您希望(假)域指向這個新別名,請確保 /etc/hosts 包含以下行:
10.0.0.1 www.your-domain.com
我能夠使用Mac 10.10.2 上的
ifconfig
and命令來完成這項工作。pfctl
通過以下方法,我成功地映射127.0.0.1:3000
到mydomain.com
我的機器上的本地。在命令行中輸入以下兩個命令以將連接轉發
127.0.0.1:3000
到10.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/hosts
or/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 的主機。