Table of Contents
- Настройка инфраструктуры локальной сети с выходом в интернет
- Хост маршрутизатор, 192.168.1.1
- Включение пересылки IP (IP Forwarding), /etc/sysctl.conf
- Настройка NAT iptables, классический способ, ufw НЕ УСТАНОВЛЕН!
- Проверка правил iptables
- Настрока NAT, ufw установлен
- Установка и настройка DHCP сервера на шлюзе
- Установка пакета
- Конфигурация DHCP-сервера, файл /etc/dhcp/dhcpd.conf
- Указание сетевого интерфейса
- Перезапуск и включение службы
- Конфигурация DHCP-клиента
- Резервирование адресов
- Настройка синхронизации времени, Debian 12 и выше
Настройка инфраструктуры локальной сети с выходом в интернет
Создано 20.12.2025
Изменено 21.12.2025, 23:04
Хост маршрутизатор, 192.168.1.1
Соглашение по сетевым интерфейсам
- eth0 - внешний интерфейс, "смотрит" в интернет
- eth1 - внутрениий LAN
Настройки сетевых интерфейсов, хост маршрутизатор, файл /etc/newtwork/interfaces
ссылки:
- https://wiki.debian.org/ru/NetworkConfiguration
- https://rtfm.wiki/linux/debian/etc-network-interfaces
- https://synay.net/support/kb/setting-nat-linux-debian-internet-local-network
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 193.203.51.138/24
gateway 193.203.51.1
dns-nameservers 193.203.50.254 8.8.8.8
# LAN
allow-hotplug eth1
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
Включение пересылки IP (IP Forwarding), /etc/sysctl.conf
net.ipv4.ip_forward=1
Для вступления в силу изменений в /etc/sysctl.conf выполнить команду
sysctl -p
Проверка, что Forwarding работает
cat /proc/sys/net/ipv4/ip_forward
1
Важно
Если при перезагрузке cat /proc/sys/net/ipv4/ip_forward выдает 0, то необходимо создать файл в /etc/sysctl.d/99-ipv.conf с таким содержимым:
net.ipv4.ip_forward = 1
Применить изменения:
systemctl restart procps
sysctl -p
Настройка NAT iptables, классический способ, ufw НЕ УСТАНОВЛЕН!
- разрешить трафику из LAN
iptables -A INPUT -i eth1 -j ACCEPT - разрешить трафик из интернета, который является ответом на запросы из LAN
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT - включить NAT (Masquerading) для трафика, уходящего из LAN в интернет
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - сохранение измененных правил iptables:
iptables-save > /etc/iptables/rules.v4
Проверка правил iptables
iptables -L -v -n
Настрока NAT, ufw установлен
-
Откройте файл /etc/default/ufw
Найти строку DEFAULT_FORWARD_POLICY="DROP" и заменить ее на DEFAULT_FORWARD_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="ACCEPT" -
добавить правило маскарадинга
Открыть файла /etc/ufw/before.rules
Добавить строки в начале файла перед строкой *filter
# <!- NAT RULES -> *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE COMMIT # <!- END NAT RULES -> -
перезапустить ufw
ufw disable && ufw enable
Установка и настройка DHCP сервера на шлюзе
Установка пакета
На шлюзе должен быть установлен статический IP адрес 192.168.1.1, файл /etc/network/interfaces
apt install isc-dhcp-server
Конфигурация DHCP-сервера, файл /etc/dhcp/dhcpd.conf
# Настройки сети
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # Диапазон выдаваемых IP
option routers 192.168.1.1; # IP вашего шлюза/роутера
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS-серверы (Google DNS)
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}
Указание сетевого интерфейса
Файл /etc/default/isc-dhcp-server
INTERFACESv4="eth1"
Перезапуск и включение службы
systemctl restart isc-dhcp-server
Конфигурация DHCP-клиента
Файл /etc/newtwork/interfaces
auto eth1
iface eth1 inet dhcp
Резервирование адресов
Файл /etc/dhcp/dhcpd.conf
Пример, добавляем в конец файла:
host my-server {
hardware ethernet 00:1A:2B:3C:4D:5E; # Замените на MAC-адрес вашего устройства
fixed-address 192.168.1.101; # Замените на желаемый статический IP
}
Настройка синхронизации времени, Debian 12 и выше
-
установка systemd-timesyncd
apt install systemd-timesyncd -
включение синхронизации времени
timedatectl set-ntp trueЕсли получаем ошибку Failed to set ntp: NTP not supported, то перед включением синхронизации - выполнить команду:
systemctl enable --now systemd-timesyncdЕсли опять получаем ошибку Failed to set ntp: NTP not supported, то выполнить команду:
systemctl unmask systemd-timesyncd.service