Jak mogę zmienić domyślną bramę?

19

Obecnie korzystam z FreeBSD 9.1, a domyślna brama jest już skonfigurowana w rc.conf.

rc.conf:

defaultrouter = "10.0.0.1"

Ale teraz chcę zmienić domyślną bramę bez ponownego uruchamiania systemu, czy to możliwe?

WWW
źródło

Odpowiedzi:

21
route del default
route add default 1.2.3.4

Gdzie 1.2.3.4jest nowa brama? Możesz nawet połączyć je w tę samą linię za pomocą;

Edycja: To jest FreeBSD, nie Linux. Komenda jest inna. Nie edytuj tej odpowiedzi, jeśli nie przeczytałeś pytania wystarczająco uważnie, aby określić używany system operacyjny.

Chris S.
źródło
4
Uwaga: zrób to w konsoli, a nie przez ssh. Jeśli musisz to zrobić za pomocą ssh (lub innej metody sieciowej), wydaj obie komendy jednocześnie, z ;lub za pomocą&&
Dalibor Filus
4
Lub użyj ogólnej bezpiecznej metody: 1) Zaloguj się do powłoki, zamknij / uruchom ponownie w ciągu 15 minut, chyba że zostanie anulowana 2) Wykonaj niebezpieczne czynności. 3) Anuluj zamknięcie / ponowne uruchomienie.
Hennes,
2
W systemie Linux polecenia ip route del defaulti ip route add default via 1.2.3.4działają. Polecenie to jest więc nadal istotne również dla użytkowników Linuksa, ponieważ ma dość podobne podobieństwo.
Paul Stelian
16

Możesz dodać nową domyślną trasę i usunąć starą za pomocą polecenia iplub route. Poniższe polecenia zastąpią bramę 192.0.2.1. Obie pary poleceń robią to samo. FreeBSD i inne systemy operacyjne powinny mieć jeden lub oba programy, być może z nieco innymi formatami. (FreeBSD ma routepolecenie i wyklucza gwsłowo kluczowe używane w innych implementacjach.) Polecenia man ipi / lub man routepowinny dostarczyć ci dokumentację dotyczącą twojej konkretnej implementacji.

route add default 192.0.2.1
route del default 10.0.0.1

ip route add default via 192.0.2.1
ip route del default via 10.0.0.1 

Istnieje wiele implementacji tych poleceń, więc powyższe może nie pasować do twojej implementacji. Twoja implementacja powinna mieć manstronę z przykładami typowych przypadków użycia, takich jak dodawanie i usuwanie bram domyślnych. Spróbuj man routei man ipzobacz, jak działa Twoja implementacja.

Zmień 192.0.2.1 na wybraną domyślną bramę. Brama domyślna musi znajdować się w jednej z sieci, z którymi masz bezpośrednie połączenie. Możesz zmienić swój adres IP w podobny sposób. ipjest nowszym narzędziem, które zrobi wszystko, co musisz zrobić, aby wyświetlić adresy IP i zarządzać nimi oraz routingiem w sieciach IPv4 i IPv6. ifconfigto starsze narzędzie do konfigurowania adresów IP w sieci IPv4.

Aby wprowadzić zmianę na stałe, zaktualizuj pliki konfiguracji sieci w /etc. Pliki różnią się w zależności od używanej dystrybucji.

Co najmniej jedno z tych poleceń powinno być dostępne w każdym systemie operacyjnym pochodzącym z Uniksa. Różne wersje mogą działać nieco inaczej. Sprawdź manstronę, aby uzyskać szczegółowe informacje na temat swojego O / S.

BillThor
źródło
4
-1 Przepraszamy, ale są to polecenia Linuksa i nie działają na FreeBSD .
Chris S,
2
@ChrisS zaktualizowano w celu odniesienia do zmian w FreeBSD. routema wiele implementacji z niewielkimi zmianami składni.
BillThor
1
głosuj na polecenia „ip route”.
Sérgio
9

Oto jedna linijka:

ip route replace default via 1.2.3.4

Gdzie 1.2.3.4jest nowy adres IP bramy?

kredyt

artfulrobot
źródło
2
-1 Przepraszamy, ale są to polecenia Linuksa i nie działają na FreeBSD .
Chris S
3

tak, po prostu zmień trasę i uruchom ponownie sieć.

/etc/rc.d/netif restart
johnshen64
źródło
2
Działa to, choć bardzo często restartuje ... i może uszkodzić aplikacje powiązane z interfejsami.
Chris S,
1

Możesz spróbować:

route add default gw 192.168.1.254 eth0
Chip Estrada
źródło
-1 Przepraszamy, ale są to polecenia Linuksa i nie działają na FreeBSD .
Chris S
Route addjest jednak częścią mojej instalacji FreeBSD 8.4. Ale tak, wiele osób tutaj odpowiada za zły system operacyjny.
Hennes,
1
@Hennes route addczęść działa dobrze. GNU / Linux dodał tę gwczęść, która nie działa na żadnym innym * nix. Bez gwpracy na wszystkich systemach BSD, Solaris, OSX, HPUX, AIX itp.
Chris S
1

To bardzo proste, wystarczy wpisać kolejne polecenia:

$ route del 0/0
$ route add 0/0 192.168.0.1

Będziesz musiał zastąpić „192.168.0.1” adresem IP swojego wyboru.

Aby sprawdzić zmiany, możesz użyć „netstat”:

$ netstat -r

To polecenie pokazuje tablicę routingu systemu.

ifm
źródło
Co to jest „0/0”?
WWW
1
@WWW „0/0” to skrót bloku sieciowego „0.0.0.0/0”, który jest taki sam jak „domyślny”, ale wolę „0/0” (przypuszczam, że jestem bardziej starą szkołą ).
ifm
0

Zawsze najpierw użyj, netstat -nraby sprawdzić bramę, co masz i jakie ma szczegóły ... widzisz 0.0.0.0. kiedy jest domyślny i powinieneś najpierw pomyśleć, dlaczego zmieniam tę bramę, niż użyj tego polecenia:

route add default gw your ip eth0
użytkownik122562
źródło
-1 Przepraszamy, ale są to polecenia Linuksa i nie działają na FreeBSD .
Chris S