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