Hay dos soluciones para su problema con Parallels Desktop 11 (esto no se aplica a Parallels Desktop Pro / Enterprise 11, que proporcionan una interfaz conveniente para configurar el reenvío de puertos; no obstante, las soluciones deberían funcionar también en esas versiones mejoradas) :
En lugar de conectar la interfaz de red de la máquina virtual a la "Red compartida", use una interfaz puenteada (por ejemplo, en0 o en1) y configúrela con una máscara de red / IP en la red correspondiente. Entonces no necesita NAT / puerto de reenvío.
Si insiste en una red NAT, haga lo siguiente:
En el siguiente ejemplo, uso nc
como servidor. Para ejecutar un servidor, ingrese nc -l -4 port
y para conectarse a este servidor use nc server-IP port
. También puede especificar un puerto de origen: nc -p source-port server-IP port
.
Aquí uso nc -l -4 11111
en la máquina virtual. Para conectarme a este servidor, ejecutaría nc server-IP 11111
desde un host en la misma red. Después de iniciar el servidor y conectar el cliente, simplemente puede ingresar algún texto, que se envía a la otra consola. Para conectarme desde un tercer host en una red diferente al VM nc-server, quiero usar nc NAT-host-IP 22222
. Así que tengo que reenviar NAT-host-IP: 22222 a VM-IP: 11111. NAT-host en este caso es la Mac que aloja la VM de Parallels.
-
conecte la interfaz de red del invitado de VM a la "Red de solo host". Por lo general, la red de host solo de Parallels tiene la siguiente configuración de host (verifique esto ingresando ifconfig
en la máquina host):
vnic1: ...
...
inet 10.37.129.2 netmask 255.255.255.0 broadcast 10.37.129.255
Configura el invitado de máquina virtual de la siguiente manera:
- IP: 10.37.129.x (con x ≠ 0,1,2,255): a continuación, asumo que es 10.37.129.10
- Máscara de red: 255.255.255.0
- Puerta de enlace: 10.37.129.2
- DNS: un servidor DNS real como 8.8.8.8
-
En la máquina NAT-host habilite el reenvío en /etc/sysctl.conf:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
y reinicia el host.
-
En la máquina NAT-host (con un ejemplo de IP de en0: 192.168.0.2) cree un archivo de anclaje org.user.forwarding en /private/etc/pf.anchors
sudo touch /private/etc/pf.anchors/org.user.forwarding
con el siguiente contenido y una línea vacía al final:
rdr pass on en0 inet proto tcp from any to any port 22222 -> 10.37.129.10 port 11111
-
En la máquina NAT-host, modifique el archivo /private/etc/pf.conf pero mantenga una línea vacía al final
archivo original:
...
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
a
...
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "org.user.forwarding"
nat on en0 proto {tcp, udp, icmp} from 10.37.129.0/24 to any -> en0
pass from {lo0, 10.37.129.0/24} to any keep state
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "org.user.forwarding" from "/etc/pf.anchors/org.user.forwarding"
-
Analice y pruebe su ancla y su archivo pf.conf para asegurarse de que no haya errores:
sudo pfctl -vnf /etc/pf.anchors/org.user.forwarding
sudo pfctl -vnf /etc/pf.conf
-
Habilita pf con:
sudo pfctl -e -f /etc/pf.conf
- Para probar esto, inicie el servidor nc en la máquina virtual con
nc -l -4 11111
. Ahora en un tercer host en su red física ingrese nc 192.168.0.2 22222
.
Después de reiniciar tienes que iniciar pf de nuevo. Si desea habilitar pf, revise mis otras pf relacionadas de forma permanente.
Después de una actualización o actualización del sistema, algunos de los archivos originales anteriores pueden haber sido reemplazados y usted debe volver a aplicar todos los cambios.