Сетевые настройки · 2 min read · Jan 08, 2026

Пошаговая настройка NAT с помощью iptables

Пошаговая настройка NAT с помощью iptables

Этот учебник показывает, как настроить трансляцию сетевых адресов (NAT) на системе Linux с помощью правил iptables, чтобы система могла выступать в качестве шлюза и предоставлять доступ в интернет нескольким хостам в локальной сети, используя один публичный IP-адрес. Это достигается путем переписывания исходных и/или целевых адресов IP-пакетов по мере их прохождения через систему NAT.

Требования:

CPU - PII или выше
OS - Любое дистрибутив Linux
Программное обеспечение - Iptables
Сетевые интерфейсные карты: 2

Вот мои соображения:

Замените xx.xx.xx.xx на ваш WAN IP

Замените yy.yy.yy.yy на ваш LAN IP

(т.е. 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, как предложил г-н tzs)

WAN = eth0 с публичным IP xx.xx.xx.xx
LAN = eth1 с частным IP yy.yy.yy.yy/ 255.255.0.0

Пошаговая процедура

Шаг #1. Добавьте 2 сетевые карты в Linux-бокс

Шаг #2. Проверьте сетевые карты, установлены ли они правильно или нет

ls /etc/sysconfig/network-scripts/ifcfg-eth* | wc -l

(Вывод должен быть “2”)

Шаг #3. Настройте eth0 для Интернета с публичным (IP внешней сети или Интернета)

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
BROADCAST=xx.xx.xx.255    # Дополнительная запись
HWADDR=00:50:BA:88:72:D4    # Дополнительная запись
IPADDR=xx.xx.xx.xx
NETMASK=255.255.255.0    # Предоставлено провайдером
NETWORK=xx.xx.xx.0       # Дополнительно
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=xx.xx.xx.1    # Предоставлено провайдером

Шаг #4. Настройте eth1 для LAN с частным IP (внутренняя частная сеть)

cat /etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=none
PEERDNS=yes
HWADDR=00:50:8B:CF:9C:05    # Дополнительно
TYPE=Ethernet
IPV6INIT=no
DEVICE=eth1
NETMASK=255.255.0.0        # Укажите в зависимости от ваших требований
BROADCAST=””
IPADDR=192.168.2.1        # Шлюз LAN
NETWORK=192.168.0.0        # Дополнительно
USERCTL=no
ONBOOT=yes

Шаг #5. Конфигурация хоста    (Дополнительно)

cat /etc/hosts

127.0.0.1       nat localhost.localdomain   localhost

Шаг #6. Конфигурация шлюза

cat /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=nat
GATEWAY=xx.xx.xx.1    # Шлюз в интернет, предоставленный провайдером

Шаг #7. Конфигурация DNS

cat /etc/resolv.conf

nameserver 203.145.184.13      # Основной DNS-сервер, предоставленный провайдером
nameserver 202.56.250.5        # Вторичный DNS-сервер, предоставленный провайдером

Шаг #8. Конфигурация NAT с помощью IP Tables

iptables --flush            # Сбросьте все правила в таблицах filter и nat
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
service iptables restart

Шаг #9. Тестирование

ping 192.168.2.1

Попробуйте это на ваших клиентских системах

ping google.com

Настройка ПК в сети (клиенты)

•    Все ПК в частной офисной сети должны установить свой “шлюз” на локальный частный IP-адрес компьютера-шлюза Linux.
•    DNS должен быть установлен на DNS-подключение провайдера в интернете.
Конфигурация Windows ‘95, 2000, XP:

•    Выберите “Пуск” + “Настройки” + “Панель управления”
•    Выберите значок “Сеть”
•    Выберите вкладку “Конфигурация” и дважды щелкните компонент “TCP/IP” для сетевой карты. (НЕ TCP/IP -> Модемный адаптер)
•    Выберите вкладки:
o    ”Шлюз”: Используйте внутренний сетевой IP-адрес компьютера Linux. (192.168.2.1)
o    ”Конфигурация DNS”: Используйте IP-адреса DNS-серверов провайдера. (Фактический интернет IP-адрес)
o    ”IP-адрес”: IP-адрес (192.168.XXX.XXX - статический) и маска подсети (обычно 255.255.0.0 для небольшой локальной офисной сети) ПК также можно установить здесь.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.