Як я можу змінити шлюз за замовчуванням?


19

В даний час я запускаю FreeBSD 9.1 і шлюз за замовчуванням вже налаштований у rc.conf.

rc.conf:

defaultrouter = "10.0.0.1"

Але тепер я хочу змінити шлюз за замовчуванням без перезавантаження системи, чи це можливо?

Відповіді:


21
route del default
route add default 1.2.3.4

Де 1.2.3.4новий шлюз. Ви навіть можете об'єднати їх в одну лінію з а;

Редагувати: це FreeBSD, а не Linux. Команда інша. Будь ласка, не редагуйте цей відповідь, якщо Ви не прочитали Питання досить уважно, щоб визначити, яка операційна система використовується.


4
Примітка: робіть це в консолі, а не над ssh. Якщо ви повинні зробити це за допомогою ssh (або іншого мережевого методу), ;&&
видайте

4
Або скористайтеся загальнобезпечним безпечним методом: 1) Увійдіть у оболонку, відключіть / перезавантажте за 15 хвилин, якщо не скасовано 2) Робіть небезпечні речі. 3) Скасувати відключення / перезавантаження.
Геннес

2
У Linux команди ip route del defaultі ip route add default via 1.2.3.4працюють. Таким чином, команда все ще актуальна для користувачів Linux, оскільки має досить схожість.
Пол Стеліан

16

Ви можете додати новий маршрут за замовчуванням і видалити старий за допомогою команди ipабо route. Команди нижче замінять шлюз на 192.0.2.1. Обидві команди команд роблять те саме. FreeBSD та інші ОС повинні мати одну або обидві програми, можливо, з дещо різними форматами. (FreeBSD має routeкоманду і виключає gwключове слово, яке використовується в інших реалізаціях.) Команди man ipта / або man routeповинні надавати вам документацію щодо вашої конкретної реалізації.

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 

Існує кілька реалізацій цих команд, тому вищезгадане може не відповідати вашій реалізації. Ваша реалізація повинна мати manсторінку з прикладами для випадків поширеного використання, таких як додавання та видалення шлюзів за замовчуванням. Спробуйте man routeі man ipпобачити, як працює ваша реалізація.

Змініть 192.0.2.1 на потрібний шлюз за замовчуванням. Шлюз за замовчуванням повинен бути в одній із мереж, до яких ви маєте пряме з'єднання. Ви можете змінити свою IP-адресу аналогічним чином. ipце новіший інструмент, який зробить більшість всього, що вам потрібно зробити, щоб переглянути та керувати IP-адресами та маршрутизацією в мережах IPv4 та IPv6. ifconfigє старішим інструментом для налаштування IP-адрес у мережі IPv4.

Щоб зміни були постійними, оновіть файли конфігурації мережі в /etc. Файли (и) змінюються залежно від розповсюдження, яке ви використовуєте.

Принаймні одна з цих команд повинна бути доступна для будь-яких похідних O / S, похідних від Unix. Різні версії можуть працювати трохи по-різному. Перевірте manсторінку на детальну інформацію про ваш O / S.


4
-1 Вибачте, але це команди Linux і не працюють на FreeBSD .
Chris S

2
@ChrisS оновлено для посилання на зміни для FreeBSD. routeмає кілька реалізацій із незначними змінами синтаксису.
BillThor

1
проголосувати за команди "ip route".
Серхіо

9

Ось одноколісний:

ip route replace default via 1.2.3.4

Де 1.2.3.4новий IP шлюз

кредит


2
-1 Вибачте, але це команди Linux і не працюють на FreeBSD .
Chris S

3

так, просто змініть маршрут та перезапустіть вашу мережу.

/etc/rc.d/netif restart

2
Це працює, хоча він перезапускає чортівку багато ... і може порушити програми, пов'язані з інтерфейсами.
Chris S

1

Ви можете спробувати:

route add default gw 192.168.1.254 eth0

-1 Вибачте, але це команди Linux і не працюють на FreeBSD .
Chris S

Route addє частиною моєї установки FreeBSD 8.4. Але так, багато людей тут відповідають за неправильну ОС.
Hennes

1
@Hennes route addчастина працює чудово. GNU / Linux додав gwчастину, яка не працює на жодному іншому * nix. Без gwробіт на всіх BSD, Solaris, OSX, HPUX, AIX тощо
Chris S

1

Це дуже просто, вам потрібно лише набрати наступні команди:

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

Вам потрібно буде замінити '192.168.0.1' на обраний вами IP.

А щоб перевірити зміни, ви можете скористатися 'netstat':

$ netstat -r

Ця команда показує таблицю маршрутизації системи.


Що таке "0/0"?
WWW

1
@WWW '0/0' - це абревіатура мережевого блоку '0.0.0.0/0', що те саме, що 'за замовчуванням', але я віддаю перевагу '0/0' (я вважаю, що я більше старий школи ).
ifm

0

Завжди спочатку використовуйте netstat -nrдля перевірки шлюзу, що у вас є, і які деталі в ньому є ... Ви бачите 0.0.0.0. коли його за замовчуванням, і вам слід спершу подумати, чому я змінюю цей шлюз, ніж використовую цю команду:

route add default gw your ip eth0

-1 Вибачте, але це команди Linux і не працюють на FreeBSD .
Кріс С
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.