Estoy en una Mac e intento enrutar una dirección particular a través de una puerta de enlace específica en mi conexión wifi.
Estoy usando:
route add -host 54.81.143.201 192.168.15.1
A veces esto funcionará, otras veces no. Lo que encontré es que la interfaz que elige es diferente cada vez. Necesita ser en0
para trabajar
netstat -nr
salida cuando no funciona:
54.81.143.201 192.168.15.1 UGHS 1 89 en5
Esto es cuando funciona: (nota en0)
54.81.143.201 192.168.15.1 UGHS 0 1 en
¿Por qué estoy haciendo esto? Porque nuestra compañía tiene un proxy en el que HipChat no funciona. Así que estoy enrutando el tráfico hipchat a través de una red wifi abierta mientras todavía estoy en mi ethernet de trabajo.
EDITAR:
También intenté agregar la entrada usando solo la interfaz
route add -host 54.81.143.201 -interface en0
54.81.143.201 78:31:c1:c7:52:74 UHS 0 2 en0
HipChat no logra conectarse.
EDITAR 2: Alguien pidió mi tabla de enrutamiento completa, aquí está hoy. Tenga en cuenta que 54.81.143.201 ahora está vinculado a en3 y no en0
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.7.90.1 UGSc 31 6 en3
10.7.90/24 link#4 UCS 4 0 en3
10.7.90.1 0:23:ac:3d:db:c2 UHLWIir 16 0 en3 1200
10.7.90.44 40:6c:8f:19:4a:bb UHLWI 0 3 en3 946
10.7.90.63 127.0.0.1 UHS 0 0 lo0
54.81.143.201 192.168.15.1 UGHS 0 0 en3
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 3 209 lo0
169.254 link#4 UCS 1 0 en3
169.254.255.255 0:23:ac:3d:db:c2 UHLSW 0 0 en3
en3
es claramente correcto. 192.168.15.1 no es accesible a través de ninguna otra interfaz. La única forma de llegar a 192.168.15.1 en esa tabla de enrutamiento es a través de la ruta predeterminada, ¿verdad? (Sin rodeos, parece que no tienes idea de lo que estás haciendo. Parece que te sorprende que el sistema no esté haciendo lo imposible).Respuestas:
Tratar:
fuente
Como otros indicaron, esto es en realidad 3 problemas.
Su interfaz inalámbrica parece estar cambiando entre en0, en3 y en5.
En mi MacBook Air, en0 siempre es inalámbrico; Thunderbolt-to-Ethernet siempre es en3, y USB-to-Ethernet siempre es en5. Pero si conecta un adaptador a un puerto diferente en su Mac, entonces su nombre de NIC cambia. Necesitas resolver esto primero. Asegúrese de que su conexión inalámbrica siempre tenga el mismo nombre. De lo contrario, cuando ingrese el comando de ruta estática, si no hay una NIC conectada a la
en0
ubicación, el comando (obviamente) fallará con un "error de dirección" (la dirección física no tiene enlace).Del mismo modo, asegúrese de que el adaptador esté siempre conectado al mismo SSID. La dirección de la puerta de enlace obviamente debe ser válida para la subred, y las diferentes redes WiFi tendrán subredes diferentes. Esto puede causar otro tipo de error.
No especificó si la conexión inalámbrica es su única conexión de red. Dado lo anterior, supongo que no ...? Esto y las redes virtuales debido a VMware o Parallels pueden causar complejidades adicionales. (Por ejemplo, si ambas redes conectadas usan el mismo espacio IP ... Las máquinas virtuales a menudo están conectadas y tienen sus propias IP / rutas / enlaces ...) Publicar la topología de la red ayudaría.
Una vez hecho esto, intente cualquiera
sudo route add -host 54.81.143.201 -iface en0
osudo ipfw
. Si no está seguro del nombre del adaptador, puede especificar su dirección MAC, así:sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a
Relacionado: https://discussions.apple.com/thread/5049994?searchText=policy%20route
Si reinicia, esto puede no persistir. Tendrás que manejar eso por separado.
fuente
fuente
Pude agregar una ruta a través de una interfaz usando la
-link
opción para especificar una dirección MAC.route add -host 54.81.143.201 -link [mac addr of 192.168.15.1 on en0]
Eso enviará tráfico por
54.81.143.201
la interfaz adecuada.Tienes dos
192.168.15.*
direcciones de host separadas asignadas, una a cada interfaz, ¿verdad? De lo contrario, puede enviar tráfico desde cualquiera de las interfaces, pero el tráfico volverá a cualquier IP de origen que tengan los paquetes.fuente
Esta solución funciona en la última MacOS 10.12 (Sierra). Aquí está la esencia .
Usar así:
Se supone que la interfaz wifi es: en1 .
No olvide poner valores correctos para las variables wifi_router y wifi_address . Tenga en cuenta el formato wifi_address , que es: nombre de interfaz de red ' : ' dirección mac de interfaz con ' . ' delimitadores . Claro, la mayoría de la información requerida se puede analizar a partir de la salida del comando ifconfig , pero soy demasiado vago para eso =)
fuente
El
route
comando OS X se documenta aquí . El-ifscope
parámetro y su valor le permiten especificar una ruta vinculada a la interfaz.Sin embargo, esto no es lo que quieres. Debe reparar sus redes para que sus rangos de IP sean únicos. Aparte de eso, las métricas de la interfaz (también conocidas como prioridades) afectan qué interfaz se elige de una opción igualmente oportuna.
fuente
Aquí se explica cómo traducir el nombre definido por el usuario 'Wi-Fi' a cualquier nombre de dispositivo (por ejemplo, en0, en1, en9, ...) que MacOS haya asignado en ese momento.
Puede poner estas funciones en un script específico, o simplemente mantenerlas en su
.bash_profile
.Luego solo llame
get_int_name 'Wi-Fi'
para obtener el nombre del dispositivo asignado.Por ejemplo:
fuente
Entonces, ¿el servidor del proveedor con el que estás tratando de hablar sobre el servicio "HipChat" que reclamas es 54.81.143.201? En este caso, haría una entrada de enrutamiento para 54.81.143.0 255.255.255.0 para darle un rango más grande. Quizás cuando se utiliza el software, no siempre se está hablando con este servidor específico, sino un grupo de ellos en la misma subred 54.81.143.0/24. Además, asegúrese de que sus métricas de ruta sean correctas al crear una nueva entrada. Si crea una ruta a 54.81.143.0/24 192.168.15.1 Metric 20 En5, pero también tiene una ruta a 0.0.0.0/0 10.7.90.1 Metric 10 En0. La computadora ignorará su nueva entrada y continuará enrutando el tráfico a través de la ruta predeterminada (a través de En0) porque es más preferible. Simplemente hojeé esto y quería señalarlo. ¡Aclamaciones!
fuente
Debería intentar agregar el nombre de la NIC:
Esto funciona para mí en CentOS.
fuente