曾經的 ipfw 已經被 pf 所替換。安全
你能夠跟着手冊來。app
$ man pfctl $ man pf.conf
或者手動新建文件 /etc/pf.anchors/http
。文件內容以下:tcp
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 rdr pass on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 4443 rdr pass on en0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 rdr pass on en0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 4443
檢查其正確性。code
$ sudo pfctl -vnf /etc/pf.anchors/http
修改 pf 的主配置文件 /etc/pf.conf
。orm
pf.conf 對指令的順序有嚴格要求,相同的指令須要放在一塊兒,不然會報錯 Rules must be in order: options, normalization, queueing, translation, filtering.ip
# 在 rdr-anchor "com.apple/*" 下添加 rdr-anchor "http-forwarding" # 在 load anchor "com.apple" from "/etc/pf.anchors/com.apple" 下添加 load anchor "http-forwarding" from "/etc/pf.anchors/http"
最後導入並容許運行。string
$ sudo pfctl -ef /etc/pf.conf
我又執行了以下命令強制重啓 pf。it
$ sudo pfctl -E
大功告成。io
新版 Mac OS 10.11 EI Captian 加入了系統完整性保護機制,需重啓到安全模式執行下述命令關閉文件系統保護:class
$ csrutil enable --without fs
而後才能修改 /System/Library/LaunchDaemons/com.apple.pfctl.plist
文件實現開機自啓用配置:
<string>pfctl</string> <string>-e</string> <string>-f</string> <string>/etc/pf.conf</string>
添加了上述 -e
行。
使用下述命令關閉 pf:
$ sudo pfctl -d