Как я могу изменить шлюз по умолчанию?


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 (или другой сетевой метод), выполните обе команды сразу, с ;или с&&
Dalibor Filus

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. Файл (ы) варьируется в зависимости от используемого вами дистрибутива.

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


4
-1 Извините, но это команды Linux и они не работают на FreeBSD .
Крис С

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 .
Крис С

3

да просто измените маршрут и перезапустите вашу сеть.

/etc/rc.d/netif restart

2
Это работает, хотя и много перезапускает ... и может сломать приложения, связанные с интерфейсами.
Крис С

1

Вы можете попробовать:

route add default gw 192.168.1.254 eth0

-1 Извините, но это команды Linux и они не работают на FreeBSD .
Крис С

Route addявляется частью моей установки FreeBSD 8.4. Но да, здесь много людей, которые отвечают за неправильную ОС.
Хеннес

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', который совпадает с 'default', но я предпочитаю '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.