На моей работе у нас есть несколько тестовых машин, в которых мы запускаем скрипты через ssh. Во время тестирования мы хотим, чтобы машины только получали доступ к локальной сети через их Ethernet-соединение, но затем хотели бы иметь возможность иметь доступ к Интернету через один и тот же интерфейс для очистки и передачи данных после.
Мы можем сделать это, перейдя на каждую машину и переключив опцию "Use this connection only for resources on its network" в network manager> IPv4 options> routes menu, но было бы намного удобнее добавлять это в нашем тестовом скрипте.
Я могу найти некоторые аналогичные вопросы, связанные с подключениями VPN, но я хочу убедиться, что я правильно обрабатываю маршрутизацию для обычного интерфейса Ethernet. Спасибо за любую помощь.
Если вы хотите редактировать файлы напрямую, вы также можете это сделать.
Перейдите в каталог /etc/NetworkManager/system-connections/ и найдите нужное соединение. Откройте сеть, используя sudo nano MyNetwork.
. Когда вы откроете файл, найдите раздел [ipv4] и добавьте never-default=true, например:
[ipv4]
dns-search=
method=auto
never-default=true
Если вы также хотите, чтобы маршруты IPv6 обрабатывались одинаково, добавьте одну и ту же строку в раздел [ipv6]:
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
never-default=true
Сохраните и выйдите из редактора с помощью Ctrl + X, а затем перезапустите NetworkManager с нижеследующим чтобы убедиться, что изменения подобраны:
sudo systemctl restart NetworkManager.service
Подключите к сети, и она должна работать нормально.
Вы можете использовать nmcli для этого, клавиша ipv4.never-default:
nmcli connection modify enp3s0 ipv4.never-default true
изменить enp3s0 с вашим собственным именем соединения. используйте false или true для переключения между этой конфигурацией. Вы можете удалить маршрут по умолчанию, и они будут доступны только из вашей локальной подсети.
ip route delete default
И добавить его обратно:
ip route add default via <you_gateway_ip_address>
Если вы хотите редактировать файлы напрямую, вы также можете это сделать.
Перейдите в каталог /etc/NetworkManager/system-connections/ и найдите нужное соединение. Откройте сеть, используя sudo nano MyNetwork.
. Когда вы откроете файл, найдите раздел [ipv4] и добавьте never-default=true, например:
[ipv4]
dns-search=
method=auto
never-default=true
Если вы также хотите, чтобы маршруты IPv6 обрабатывались одинаково, добавьте одну и ту же строку в раздел [ipv6]:
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
never-default=true
Сохраните и выйдите из редактора с помощью Ctrl + X, а затем перезапустите NetworkManager с нижеследующим чтобы убедиться, что изменения подобраны:
sudo systemctl restart NetworkManager.service
Подключите к сети, и она должна работать нормально.
Вы можете использовать nmcli для этого, клавиша ipv4.never-default:
nmcli connection modify enp3s0 ipv4.never-default true
изменить enp3s0 с вашим собственным именем соединения. используйте false или true для переключения между этой конфигурацией. Вы можете удалить маршрут по умолчанию, и они будут доступны только из вашей локальной подсети.
ip route delete default
И добавить его обратно:
ip route add default via <you_gateway_ip_address>