Jestem na komputerze Mac i próbuję przekierować określony adres przez konkretną bramę w moim połączeniu Wi-Fi.
Używam:
route add -host 54.81.143.201 192.168.15.1
Czasami to zadziała, innym razem nie. Odkryłem, że interfejs, który wybiera, jest za każdym razem inny. To musi być en0
do pracy
netstat -nr
wyjście, gdy nie działa:
54.81.143.201 192.168.15.1 UGHS 1 89 en5
To wtedy działa: (uwaga en0)
54.81.143.201 192.168.15.1 UGHS 0 1 en
Dlaczego to robię? Ponieważ nasza firma ma proxy, na którym HipChat nie działa. Więc kieruję ruch hipchat przez otwartą sieć Wi-Fi, wciąż będąc w sieci Ethernet.
EDYTOWAĆ:
Próbowałem także dodać wpis, używając tylko interfejsu
route add -host 54.81.143.201 -interface en0
54.81.143.201 78:31:c1:c7:52:74 UHS 0 2 en0
HipChat nie łączy się.
EDYCJA 2: Ktoś poprosił o moją całą tabelę routingu, oto ona dzisiaj. Zauważ, że 54.81.143.201 jest teraz związany z en3, a nie 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
jest wyraźnie poprawna. 192.168.15.1 nie jest osiągalny przez żaden inny interfejs. Jedynym sposobem na osiągnięcie 192.168.15.1 w tej tabeli routingu jest skorzystanie z domyślnej trasy, prawda? (Mówiąc wprost, brzmi to tak, jakbyś nie miał pojęcia, co robisz. Wydajesz się być zaskoczony, że system nie robi niemożliwego.)Odpowiedzi:
Próbować:
źródło
Jak wskazali inni, w rzeczywistości są to 3 problemy.
Wygląda na to, że interfejs bezprzewodowy zmienia się między en0, en3 i en5.
Na moim MacBooku Air en0 jest zawsze bezprzewodowy; Thunderbolt-to-Ethernet to zawsze en3, a USB-to-Ethernet to zawsze en5. Ale jeśli podłączysz adapter do innego portu na komputerze Mac, wówczas zmieni się jego nazwa. Najpierw musisz to rozwiązać. Upewnij się, że sieć bezprzewodowa ma zawsze tę samą nazwę. W przeciwnym razie po wprowadzeniu polecenia trasy statycznej, jeśli do lokalizacji nie jest podłączony NIC
en0
, polecenie (oczywiście) zakończy się niepowodzeniem z „błędem adresu” (adres fizyczny nie ma łącza).Podobnie upewnij się, że adapter zawsze łączy się z tym samym identyfikatorem SSID. Adres bramy oczywiście musi być poprawny dla podsieci, a różne sieci WiFi będą miały różne podsieci. Może to powodować inny rodzaj błędu.
Nie określono, czy sieć bezprzewodowa jest jedynym połączeniem sieciowym. Biorąc pod uwagę powyższe, chyba nie ...? Ta sieć wirtualna z powodu VMware lub Parallels może powodować dodatkowe komplikacje. (Na przykład, jeśli obie połączone sieci używają tej samej przestrzeni IP ... Maszyny wirtualne często są zmostkowane i mają własne adresy IP / trasy / łącza ...) Pomocne byłoby opublikowanie topologii sieci.
Po dokonaniu rejestracji, spróbuj albo
sudo route add -host 54.81.143.201 -iface en0
albosudo ipfw
. Jeśli nie masz pewności co do nazwy adaptera, możesz zamiast tego podać jego adres MAC:sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a
Powiązane: https://discussions.apple.com/thread/5049994?searchText=policy%20route
Ponowne uruchomienie może nie zostać utrzymane. Musisz poradzić sobie z tym osobno.
źródło
źródło
Byłem w stanie dodać trasę przez interfejs, korzystając z
-link
opcji określania adresu MAC.route add -host 54.81.143.201 -link [mac addr of 192.168.15.1 on en0]
Spowoduje to wysłanie ruchu do
54.81.143.201
odpowiedniego interfejsu.Masz
192.168.15.*
przypisane dwa oddzielne adresy hosta, po jednym do każdego interfejsu, prawda? W przeciwnym razie możesz wysyłać ruch z dowolnego interfejsu, ale ruch powróci na dowolny źródłowy adres IP pakietu.źródło
To rozwiązanie działa na najnowszym MacOS 10.12 (Sierra). Oto sedno .
Użyj w ten sposób:
Zakłada się, że interfejs Wi-Fi to: en1 .
Nie zapomnij podać poprawnych wartości dla zmiennych wifi_router i wifi_address . Zwróć uwagę na format adresu_ Wi-Fi , który brzmi: nazwa interfejsu sieciowego „ : ” adres MAC interfejsu za pomocą „ . „ ograniczniki . Oczywiście większość wymaganych informacji można przeanalizować na podstawie danych wyjściowych komendy ifconfig , ale jestem zbyt leniwy, aby to zrobić =)
źródło
Polecenie OS X
route
jest tutaj udokumentowane .-ifscope
Parametr i jego wartość pozwala określić trasę interfejsu przychodzącego.Nie tego jednak chcesz. Musisz naprawić swoje sieci, aby ich zakresy adresów IP były unikalne. Poza tym wskaźniki interfejsu (zwane również priorytetami) wpływają na to, który interfejs zostanie wybrany z innej równie dogodnej opcji.
źródło
Więc serwer dostawcy, z którym próbujesz porozmawiać o usłudze „HipChat”, o której twierdzisz, że to 54.81.143.201? W takim przypadku wprowadziłbym wpis routingu dla 54.81.143.0 255.255.255.0, aby nadać mu większy zasięg. Być może podczas korzystania z oprogramowania nie zawsze rozmawiasz z tym konkretnym serwerem, ale ich klaster w tej samej podsieci 54.81.143.0/24. Ponadto, upewnij się, że metryki trasy są prawidłowe podczas tworzenia nowego wpisu. Jeśli utworzysz trasę do 54.81.143.0/24 192.168.15.1 Metric 20 En5, ale masz również trasę do 0.0.0.0/0 10.7.90.1 Metric 10 En0. Komputer zignoruje twój nowy wpis i będzie kontynuował kierowanie ruchu domyślną trasą (przez En0), ponieważ jest to bardziej preferowane. Właśnie przejrzałem to i chciałem to podkreślić. Twoje zdrowie!
źródło
Powinieneś spróbować dodać nazwę karty sieciowej:
Działa to dla mnie w CentOS.
źródło