Tente:
route add -host 54.81.143.201 -interface en0
Estou em um mac e tentando rotear um endereço específico através de um gateway específico na minha conexão Wi-Fi.
Estou usando:
route add -host 54.81.143.201 192.168.15.1
Às vezes isso funciona, outras vezes não. O que eu descobri é que a interface escolhida é diferente a cada vez. Não precisa ser en0
para funcionar
netstat -nr
output quando não funciona:
54.81.143.201 192.168.15.1 UGHS 1 89 en5
É quando funciona: (nota en0)
54.81.143.201 192.168.15.1 UGHS 0 1 en
Por que estou fazendo isso? Porque nossa empresa tem um proxy no qual o HipChat não funciona. Então eu estou roteando o tráfego do hipchat através de uma rede wifi aberta enquanto ainda estou no meu trabalho ethernet.
EDITAR:
Eu também tentei adicionar a entrada usando apenas a interface
route add -host 54.81.143.201 -interface en0
54.81.143.201 78:31:c1:c7:52:74 UHS 0 2 en0
HipChat não consegue se conectar.
EDIT 2: Alguém pediu toda a minha tabela de roteamento, aqui está hoje. Note que 54.81.143.201 está agora ligado a en3 e não 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
Tente:
route add -host 54.81.143.201 -interface en0
Como outros indicaram, isso é na verdade 3 problemas.
Sua interface sem fio parece estar mudando entre en0, en3 e en5.
No meu MacBook Air, en0 é sempre sem fio; Thunderbolt-to-Ethernet é sempre en3, e USB-to-Ethernet é sempre en5. Mas se você conectar um adaptador a uma porta diferente no seu Mac, o nome da NIC será alterado. Você precisa resolver isso primeiro. Certifique-se de que seu wireless sempre tenha o mesmo nome. Caso contrário, quando você inserir o comando de rota estática, se não houver nenhum NIC conectado ao local en0
, o comando (obviamente) falhará com um "erro de endereço" (o endereço físico não possui um link).
Da mesma forma, verifique se o adaptador está sempre se conectando ao mesmo SSID. O endereço do gateway obviamente tem que ser válido para a sub-rede, e redes WiFi diferentes terão sub-redes diferentes. Isso pode causar outro tipo de erro.
Você não especificou se a rede sem fio é sua única conexão de rede. Tendo em conta o exposto, acho que não ...? Isso e a rede virtual devido ao VMware ou Parallels podem causar complexidades adicionais. (Por exemplo, se as duas redes conectadas usam o mesmo espaço IP ... As máquinas virtuais geralmente são conectadas e têm seus próprios IPs / rotas / links ...) A postagem da topologia da rede ajudaria.
Depois disso, tente sudo route add -host 54.81.143.201 -iface en0
ou sudo ipfw
.
Se você não tiver certeza do nome do adaptador, poderá especificar seu endereço MAC, desta forma: sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a
Relacionado: link
Se você reiniciar, isso pode não persistir. Você precisará lidar com isso separadamente.
Eu consegui adicionar uma rota a uma interface usando a opção -link
para especificar um endereço MAC.
route add -host 54.81.143.201 -link [mac addr of 192.168.15.1 on en0]
Isso enviará tráfego para 54.81.143.201
da interface apropriada.
Você tem dois endereços de host 192.168.15.*
separados, um para cada interface, certo? Senão, você pode enviar tráfego para fora de qualquer interface, mas o tráfego retornará no IP de origem que os pacotes tiverem.
Esta solução funciona no último MacOS 10.12 (Sierra). Aqui está o Gist .
#!/bin/bash
# NOTE: wifi network interface is: en1
wifi_router=192.168.200.1
wifi_address=en1:ec.35.86.4f.00.cc
TOADDR='ifconfig en1 inet | sed -nl 's/\w*inet \([^ ]*\).*//p''
TO='echo -n ${TOADDR//[[:space:]]}'
echo "ADDING ROUTE TO $1 VIA en1 (wi-fi): $TO"
route -n add -host $1 $wifi_router -ifp $wifi_address -ifa $TO -static
echo ""
echo "ROUTE ADDED:"
route get $1
Use assim:
> sudo ./route_wifi.sh IP_ADDRESS
Assume-se que a interface wifi é: en1 .
Não se esqueça de colocar os valores corretos para as variáveis wifi_router e wifi_address . Observe o formato wifi_address , que é: nome da interface de rede ': ' endereço MAC da interface com '. ' delimitadores . Claro que a maioria das informações necessárias podem ser analisadas a partir da saída do comando ifconfig , mas eu sou muito preguiçoso para isso =)
O comando OS X route
está documentado aqui . O parâmetro -ifscope
e seu valor permitem que você especifique uma rota vinculada à interface.
Isto, no entanto, não é o que você quer. Você precisa consertar suas redes para que seus intervalos de IP sejam exclusivos. Além disso, as métricas de interface (também conhecidas como prioridades) afetam qual interface é escolhida de outra maneira igualmente oportuna.
sudo route -n add -net 54.81.143.201/32 192.168.15.1
Então, o servidor de fornecedores com o qual você está tentando falar sobre o serviço "HipChat" que você afirma é 54.81.143.201? Nesse caso, eu faria uma entrada de roteamento para 54.81.143.0 255.255.255.0 para obter um intervalo maior. Talvez, ao usar o software, você não esteja sempre falando com esse servidor específico, mas com um cluster deles na mesma sub-rede 54.81.143.0/24. Além disso, certifique-se de que suas métricas de rota estejam corretas ao criar uma nova entrada. Se você criar uma rota para a 54.81.143.0/24 192.168.15.1 Métrica 20 En5, mas também tiver uma rota para 0.0.0.0/0 10.7.90.1 Métrica 10 En0. O computador irá ignorar sua nova entrada e continuar o tráfego de roteamento através da rota padrão (via En0), porque é mais preferível. Eu apenas percorri tudo isso e queria apontar isso. Felicidades!
Você deve tentar adicionar o nome da NIC:
route add -net 10.13.0.0 netmask 255.255.0.0 dev NicNameHere
Isso funciona para mim no CentOS.