Если на одном компьютере две сетевые карты, то обычно всё “само” начинает смешиваться: и локалка, и интернет оказываются доступны там, где вы их не планировали. Особенно часто это всплывает с виртуальной машиной: в гостевой ОС появляется интернет, хотя вам нужно, чтобы гостевая шла только в локальную сеть.

Ниже - рабочая схема настройки для Linux Mint (и вообще для Linux), когда:
- хост ходит в интернет через одну карта
- локальная сеть доступна через вторую карту
- виртуальная машина получает доступ только в локалку (интернет “режется” или не прокидывается)


Как понять, что именно “смешивается” (хост и гостевая)

Есть два разных случая:

Ситуация Где появляется интернет Почему так происходит
Интернет появляется в гостевой В виртуальной машине Виртуалке дали интерфейс, который имеет маршрут к WAN, или включили NAT/проброс так, что трафик уходит наружу
Интернет доступен на хосте и в локалке одновременно На хосте Маршруты/правила позволяют ходить по умолчанию в “не ту” сеть

В вашем кейсе из конкурентов с форума типичный вариант: в хосте остаётся интернет, в гостевой подключили только локальную карту/сегмент, и интернет пропадает. Это как раз правильное направление.


Правильная модель: “раздать” гостевой только локальную часть

Самый простой и надёжный путь такой:

  1. На хосте оставляете интернет через одну сетевой карта.
  2. В виртуальной машине используете только вторую сетевой карту (или только локальный виртуальный bridge, который соответствует локальной сети).
  3. В NM (NetworkManager) на хосте не держите “локальную” карту так, чтобы через неё был дефолтный маршрут наружу.

Эта логика хорошо совпадает с решением из примера: “инет на хосте, локалка в гостевой”.


Шаг 1. Выясните имена интерфейсов и подсети

На хосте выполните:

ip -br a
ip route

Запомните:
- имя интерфейса в интернет-сегменте (например eth0, enp3s0)
- имя интерфейса в локальном сегменте (например eth1, enp5s0)
- какая строка default сейчас стоит (это ключ к тому, куда уходит трафик по умолчанию)


Шаг 2. Настройте, чтобы “default route” была только у интернет-интерфейса

Если у локальной сети тоже появляется default, то гости часто получают интернет “по инерции”.

Проверьте:

ip route | sed -n '1,20p'

Обычно должно быть что-то вроде:
- default via <шлюз-интернета> dev <интернет-интерфейс>

Если видите второй default через локальный интерфейс - его надо убрать или сделать так, чтобы локальный интерфейс не принимал дефолт.

Вариант через NetworkManager (часто самый удобный)

Если у вас Mint с NetworkManager, можно задать “маршруты” политикой интерфейса (через GUI или параметры соединения). Идея такая:
- интернет-соединение - “есть gateway”
- локальное соединение - “gateway не использовать” (или “метрика выше”, но лучше без gateway)

Если GUI не даёт быстро привести к нужному виду, проще временно убрать default вручную, чтобы подтвердить гипотезу.

Временная проверка (без правок конфигов)

sudo ip route del default dev <локальный_интерфейс>

Если после этого гостевая/локальная часть перестала ходить наружу - вы на правильном пути. Потом закрепите это настройкой NM.


Шаг 3. Настройте виртуальную машину: ей нужен только интерфейс локальной сети

Зависит от типа сети в виртуализации:

Если у вас bridge/NAT/virtual network

Нужно, чтобы гостевая была в такой виртуальной сети, которая соответствует локальной сети, но не имеет маршрута наружу.

На практике:
- для гостевой выбираете “связь с локальной частью” (bridge, который привязан к локальному интерфейсу хоста)
- не выбираете bridge/режим, который использует интернет-интерфейс хоста как NAT

Если гостевой интерфейс подключён к тому же мосту, что и интернет

Тогда интернет в гостевой появится почти гарантированно.

На уровне здравого смысла: гостевой сетевой адаптер должен “видеть” локальный сегмент, а не WAN.


Шаг 4. Убедитесь, что гостевой не получает доступ к WAN через хост

Дополнительно проверьте, что хост реально не маршрутизирует локальную сеть в интернет.

На хосте посмотрите NAT/iptables (если есть):

sudo iptables -t nat -S
sudo iptables -S

Если включено маскирование для локальной сети наружу - интернет в гостевой вернётся даже при правильном подключении интерфейса.

В таком случае нужен один из подходов:
- убрать NAT между локальной сеть и WAN
- или строго ограничить правилами, чтобы гостевая не имела egress наружу


Куда смотреть в NetworkManager: чтобы не было “двух шлюзов”

Самое частое: обе сетевые карта получают шлюз, и линукс пытается решить, что “главное”. Тогда маршруты плавают.

Проверьте метрики и шлюз:

ip route
nmcli -p device status
nmcli -p connection show

Цель простая:
- дефолт должен вести в интернет-интерфейс
- локальный интерфейс должен участвовать только в локальном обмене


Мини-шпаргалка по маршрутизации: “одна сеть - один шлюз”

Вот базовая логика (схема маршрутов):

Интерфейс Назначение Нужен default route? Что должен видеть
Интернет-интерфейс доступ наружу да внешний интернет
Локальный интерфейс работа внутри локальной сеть нет устройства локальной подсети

Если локальный интерфейс получает default - вы получаете “интернет везде”.


Как не запутаться при настройке двух сегментов (чек-лист)

Перед финальной проверкой сделайте по пунктам:

Проверка Команда/действие Что должно быть
На хосте есть только один default ip route default только через интернет-интерфейс
Локальная сеть отвечает ping по локальным IP ответы идут в пределах локалки
В гостевой видна локалка ping на хост/устройства локалки успех
В гостевой нет интернета ping/apt на внешний ресурс таймаут/нет маршрута
NAT для локалки наружу отключен (если вы его не планировали) iptables -t nat -S нет MASQUERADE для локального интерфейса

Про “две карты интернет” (когда обе с интернетом, но нужно разделение)

Иногда интерфейсы оба “живые” и у каждого свой шлюз в разные подсети. Тогда задача решается маршрутизацией и правилами:
- обычный трафик наружу - через один интерфейс
- трафик к нужным подсетям - через второй
- остальное - по вашему policy

В Ubuntu/Debian-стиле это делается ip rule и отдельными таблицами маршрутизации, но в Linux Mint на практике чаще проще добиться нужного поведения через NetworkManager: убрать gateway у локального интерфейса и правильно разнести bridges для виртуальной машины.


Итоговая схема “как настроить” под вашу цель

  1. На хосте оставляете “default route” только для интернет-интерфейса.
  2. Локальную сеть подключаете так, чтобы у неё не было gateway/дефолта.
  3. В виртуальной машине используете только локальный сегмент (bridge/адаптер привязан к локальному интерфейсу хоста).
  4. Если всё равно “протекает” наружу - проверяете NAT/iptables и убираете маршрут/маскарадинг для локальной сеть.

Так вы получаете чистое разделение: хост - в интернет, виртуальная машина - только в локальную сеть, без “самопроизвольного” выхода наружу.