Сетевые настройки · 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-eth0DEVICE=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-eth1BOOTPROTO=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/hosts127.0.0.1 nat localhost.localdomain localhost
Шаг #6. Конфигурация шлюза
cat /etc/sysconfig/networkNETWORKING=yes
HOSTNAME=nat
GATEWAY=xx.xx.xx.1 # Шлюз в интернет, предоставленный провайдером
Шаг #7. Конфигурация DNS
cat /etc/resolv.confnameserver 203.145.184.13 # Основной DNS-сервер, предоставленный провайдером
nameserver 202.56.250.5 # Вторичный DNS-сервер, предоставленный провайдером
Шаг #8. Конфигурация NAT с помощью IP Tables
iptables --flush # Сбросьте все правила в таблицах filter и natiptables --table nat --flushiptables --delete-chainiptables --table nat --delete-chainiptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADEiptables --append FORWARD --in-interface eth1 -j ACCEPTecho 1 > /proc/sys/net/ipv4/ip_forwardservice 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 для небольшой локальной офисной сети) ПК также можно установить здесь.
Get new posts in your inbox
No spam. Unsubscribe anytime.