Port Forwarding in Yosemite

If you are trying sudo ipfw for port forwarding and you are getting “command not found” then you must be using Yosemite.
The command ipfw has been deprecated since Mavericks and finally Apple took it off in Yosemite. However you can still forward port but its not going to be a one liner like

sudo ipfw add 1025 forward 127.0.0.1,1025 ip from any to any 25 in

.
After Googling around I found below steps to setup port forwarding.

Step 1: Create the Port Forwarding Rule

Open the terminal and navigate to /etc/pf.anchors/ and create a new file. I will call it com.iastute and open it in nano.

sudo touch com.iastute
sudo nano com.iastute

Paste the below rule and save it. Note: In my case I am forwarding port 80 to 8080 on my machine.

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080

Step 2: Create the Port Forwarding Config

Navigate to /etc/ and create a new conf file. I am going to call it pf-iastute.conf

sudo touch pf-iastute.conf
sudo nano pf-iastute.conf

Paste the below 3 lines, yes including the 3rd empty newline.

rdr-anchor "forwarding"
load anchor "forwarding" from "/etc/pf.anchors/com.iastute"
 

Step 3: Finally enable Port Forwarding

Enable port forwarding by running following command.

sudo pfctl -ef /etc/pf-iastute.conf

That should do it!


Momin