首页 > 代码库 > port forwarding in yosemite, a way to replace ipfw

port forwarding in yosemite, a way to replace ipfw

login as root, or do the following in sudo.

create a file /etc/pf.anchors/com.pow, add following two lines with new line breaker at the end:

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 8443

then, edit /etc/pf.conf file, add following two lines (with "pow") at the exact locations as below:

...
rdr-anchor "com.apple/*"
rdr-anchor "pow"
...
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "pow" from "/etc/pf.anchors/com.pow"

now you could issue following command to make the port forwarding activated. 

pfctl -ef /etc/pf.conf

to make sure this rule is auto loaded after system restart, need modify file /System/Library/LaunchDaemons/com.apple.pfctl.plist as

...
<string>pfctl</string>
                <string>-e</string>
                <string>-f</string>
<string>/etc/pf.conf</string>
...

done!

port forwarding in yosemite, a way to replace ipfw