¿Cómo configurar port forwarding en Mac OS El Capitán?. Hoy he descubierto una utilidad en Mac OS para configurar port forwarding que no conocía y me parece interesante compartir brevemente cómo funciona.

Lo que me estaba pasando, era que estaba configurando una máquina virtual con Vagrant y en la configuración de la máquina virtual estaba haciendo port forwarding del puerto 443 de la máquina virtual al 4567 de mi Macbook.

Editor: ~


Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 443, host: 4567
end

Pues bien al arrancar la máquina virtual con Vagrant e intentar acceder a https://localhost:4567, la aplicación que tenía instalada en la máquina virtual me estaba redirigiendo a https://localhost. Por tanto, para que funcionara, tenía que configurar port forwarding en Mac OS, para que redirigiera el tráfico del puerto 443 al 4567.

Así es cómo se hace…

¿Cómo configurar port forwarding en Mac OS El Capitán?

1. Crear el archivo de reglas de port forwarding

Creamos un archivo con las nuevas reglas de port forwarding para esta máquina virtual Vagrant.

Terminal: ~

$
sudo vim /etc/pf.anchors/vagrant.forwarding

Dentro del archivo añadimos una línea por cada regla de port forwarding que queramos configurar.

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 443 -> 127.0.0.1 port 4567

2. Añadir las nuevas reglas al archivo de configuración de port forwarding

Terminal: ~

$
sudo vim /etc/pf-vagrant.conf

Editor: /etc/pf-vagrant.conf


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

3. Aplicar la nueva configuración de port forwarding

Terminal: ~

$
sudo pfctl -ef /etc/pf-vagrant.conf

Y ya está. Ahora todo el tráfico por el puerto 443 será redirigido al puerto 4567.

Des-configurar el port forwarding

Puesto que generalmente las reglas de port forwarding es algo temporal, para algún desarrollo en completo, es bueno saber como quitar de la configuración las reglas de port forwarding que hemos añadido.

El comando para quitar las reglas de port forwarding que hemos añadido:

Terminal: ~

$
sudo pfctl -d

Y el comando para resetear la configuración de port forwarding en Mac OS

Terminal: ~

$
pfctl -F all -f /etc/pf.conf

Y au, un abruzo.