База знаний: Linux Server
Создание шлюза из стороннего сервера
Автор Алексей | HiTex.BY, Последнее изменение: Алексей | HiTex.BY на 15 апреля 2026 10:46

Бывают ситуации когда компьютеры или связка серверов находится во внутренней сети и один сервер существует как во внутренней так и во внешней. Так вот встает вопрос о том как же и остальным серверам получить доступ во вне для обновлений или подключения к каким то облачным сервисам но при этом что бы нельзя было из интернета попасть на внутренний сервер. В этом нам пожет следующая команда:

На сервере который будем использовать в качестве шлюза прописываем команду ниже:
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 8.8.8.8

где eth0 - имя интерфейса шлюзового сервера который смотрит в интернет
8.8.8.8 - внешний  ip адрес настроенный на этом интерфейсе

Дале в файле /etc/sysctl.conf прописываем строчку ниже:
net.ipv4.ip_forward=1

и применяем конфиг командой sysctl -p

После на серверах которым нужен доступ в интернет указываем внутренний ip адрес  в поле ШЛЮЗ (GATEWAY)  нашего транзитного сервера.

Разберем, как пробросить например порт — с 8080 на внехнем шлюзовом устройстве в порт 449 на внутреннем устройстве в локальной сети. Настройка DNAT (перенаправление входящих соединений)

Добавьте правило в таблицу nat, цепочку PREROUTING : iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:449

Разбор команды:

  • -t nat — работаем с таблицей NAT;
  • -A PREROUTING — добавляем правило до маршрутизации (чтобы изменить адрес назначения);
  • -i eth0 — входящий интерфейс (тот, что смотрит в интернет);
  • -p tcp — протокол TCP (если нужен UDP, замените на udp);
  • --dport 8080 — порт назначения на шлюзе (внешний порт, куда приходят запросы);
  • -j DNAT — действие DNAT (Destination NAT): изменить адрес назначения;
  • --to-destination 192.168.1.100:449 — IP и порт внутреннего сервера.

Добавим правило в цепочку FORWARD, чтобы разрешить пересылку пакетов на внутренний сервер: iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 449 -j ACCEPT

Объяснение:

  • -A FORWARD — добавляем в цепочку FORWARD (отвечает за пересылку пакетов);
  • -p tcp — протокол TCP;
  • -d 192.168.1.100 — целевой сервер (внутренний);
  • --dport 449 — порт на целевом сервере;
  • -j ACCEPT — разрешить пакет.
(177 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)