Настроить Linux в роли маршрутизатора — это как научить кота приносить тапочки: вроде и просто, но без правильного подхода можно остаться и без тапочек, и без интернета. Сегодня мы разберёмся, как сделать из вашего Linux-сервера настоящего интернет-шлюза с помощью трёх волшебных слов: nmtui, sysctl и nftables. Ну что, поехали!
Начнём с nmtui — это такой текстовый интерфейс для настройки сети, который напоминает старый добрый DOS-менюшник, только современный и не такой страшный. Запускаете команду `nmtui`, и перед вами появляется уютное окно, где можно назначать IP-адреса, переименовывать интерфейсы (да-да, вы не ослышались — можно назвать их как угодно! ens160 превратить в «Интернет», а ens192 — в «Локалку»). Тут главное не перепутать внешнюю сетевую карту с внутренней, иначе вместо доступа в интернет получите доступ к загадочным мирам локальной сети… где вас никто не ждёт.
Вот представьте: вы настраиваете ens160 на выход в интернет, а ens192 — для домашних устройств. Это примерно как дать одному другу ключ от своей квартиры (интернет), а другому — от кладовки (локальная сеть). Если перепутать ключи — придётся объяснять соседям, почему у вас вдруг дома чужие гости.
После того как вы настроили интерфейсы через nmtui (и почувствовали себя сетевым волшебником), стоит обновить оболочку командой `exec bash`. Зачем? Чтобы новые настройки сети применились сразу же. Это похоже на то, как если бы вы после смены пароля перезагрузили компьютер: всё заработает гладко и без сюрпризов.
Теперь самое важное — включаем IP-переадресацию через файл `/etc/sysctl.conf`. Добавляем туда строку `net.ipv4.ip_forward = 1` — это как сказать вашему серверу: «Слушай, дружище, теперь ты будешь пересылать пакеты между сетями!» Без этого шага ваш Linux останется тихим наблюдателем: пакеты будут приходить и уходить мимо него. А с включённой переадресацией он превращается в настоящего роутера-героя.
Если вы думаете, что настройка сети закончилась на этом этапе – спешу разочаровать! Теперь нам нужен NAT или маскарадинг. Представьте себе вечеринку: ваши друзья из локальной сети хотят выйти в большой мир интернета через одного представителя — вашего сервера. Но чтобы никто не заподозрил массового нашествия маленьких пакетов с разных адресов внутри вашей квартиры, сервер маскирует их под свой собственный IP. Для этого используется nftables – современный защитник порядка в мире пакетов.
Создаём файл конфигурации `/etc/nftables/my_nat.nft` с магической формулой:
«`
table inet nat {
chain POSTROUTING {
type nat hook postrouting priority srcnat;
oifname «ens160» masquerade
}
}
«`
Звучит сложно? Не переживайте! Это примерно как поставить охранника у двери с инструкцией: «Пропускай всех гостей только если они идут наружу через дверь ens160». И при этом меняй им бейджики на свои – чтобы никто из интернета не догадался о тайных адресах ваших друзей.
Дальше подключаем эту конфигурацию в основной файл `/etc/sysconfig/nftables.conf`, убираем комментарий и меняем путь на наш новый файл. Это похоже на то, как если бы вы заменили старую записку «Вход запрещён» новой табличкой «Добро пожаловать!» – теперь nftables знает куда смотреть за порядком.
Чтобы всё заработало сразу и автоматически при загрузке системы запускаем `systemctl enable —now nftables`. Эта команда включает службу nftables и запускает её немедленно – словно нажать кнопку «Пуск» на вашем любимом игровом автомате.
Настройка Linux в качестве маршрутизатора может быть сравнена с обучением кота приносить тапочки — требуется правильный подход, иначе можно остаться без нужного результата. С помощью инструментов nmtui, sysctl и nftables можно превратить Linux-сервер в интернет-шлюз, назначая IP-адреса, переименовывая интерфейсы и разделяя доступ в интернет и локальную сеть. Важно не перепутать конфигурацию внешнего и внутреннего интерфейсов, чтобы избежать непредвиденных ситуаций, аналогичных ситуации, когда кто-то получает ключ от квартиры, а кто-то от кладовки, и внезапно в доме появляются нежеланные гости.