Image

База знаний → Настройка NAT в Linux Debian (интернет в локальной сети)

[Виртуальные сервера]
Дата публикации: 11.03.2024

Для того чтобы использовать сервер как роутер, нам понадобится настроить NAT. В данном руководстве у сервера 2 физических порта:

  • enp3s0 - Интернет (192.168.1.12)
  • enp1s0 - Локальная сеть (100.100.100.1)

1. Конфигурация enp1s0

more /etc/network/interfaces
auto enp1s0
    iface enp1s0 inet static
    address 100.100.100.1
    netmask 255.255.255.0

2. Настройка NAT

apt install iptables
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
iptables -A FORWARD -i enp1s0 -j ACCEPT

2.1 Настройка локального шлюза как DNS сервера

В нашем случае мы используем пересылку на DNS сервер 8.8.8.8

iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A PREROUTING -p udp  --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A POSTROUTING -j MASQUERADE

2.2 Сохраним настройки модулей

nano /etc/modules
iptable_nat

2.3 Сохраним настройки трафика

nano /etc/sysctl.conf
net.ipv4.ip_forward=1

2.4 Сохраним настройки iptables

apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4

3. Проверка работы

Так как на одном порту у нас интернет, а на втором локальная сеть, то все устройства подключенные к порту локальной сети должны получить доступ в интернет. Иногда бывает что сам шлюз не настроен как DNS сервер и правильная проверка будет по пингу внешнего IP адреса.

Например:

ping 8.8.8.8

Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
Ответ от 8.8.8.8: число байт=32 время=23мс TTL=59
Ответ от 8.8.8.8: число байт=32 время=23мс TTL=59

Или

ping 1.1.1.1

Обмен пакетами с 1.1.1.1 по с 32 байтами данных:
Ответ от 1.1.1.1: число байт=32 время=4мс TTL=57
Ответ от 1.1.1.1: число байт=32 время=4мс TTL=57

Как мы видим все работает корректно. Теперь наш сервер выполняет функцию роутера.





Нет комментариев