743просмотров
12 марта 2026 г.
Score: 817
Проброс портов (Port Forwarding): решаем проблему с двумя серверами Port-forwarding — это проброс определенного TCP или UDP порта. Вместо теории, расскажу, как я его использую на практике. Проблема 🤔 Для стабильной эмуляции в Miminet я использую два сервера (назовем их A и B). Сервер A имеет белый IP-адрес и доступен из интернета, а сервер B — только серый IP-адрес. Схема подключения: Я --> СЕРВЕР A: белый IP --> [СЕРВЕР B: серый IP] Подключиться к серверу B можно только из внутренней сети, например, с сервера A. Чтобы это сделать я: 1. Подключаюсь к серверу A: ssh ilya@A -i my_private_key 2. С сервера A подключаюсь к серверу B: ssh ilya@B -i my_private_key Каждый раз вбивать две команды и таскать с собой ключи на промежуточном сервере — это неудобно и медленно. Решение 🤓 Сделаем сервер A "Jump proxy": если я стучусь на порт 2222, то переадресуй меня на 22-й порт сервера B. Все команды выполняются на сервере A: 1. Перенаправляем пакет (DNAT). Любой пакет на порт 2222 сервера A перенаправляем на IP сервера B (22 порт): iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination ip-addr-host-B:22 2. Маскируем пакет (MASQUERADE). Когда сервер B захочет ответить, он будет отправлять пакеты напрямую мне. Но мой хост ждет ответа от сервера A. Чтобы не было путаницы, сервер A должен подменить мой адрес на свой. Это называется маскарад iptables -t nat -A POSTROUTING -d ip-addr-host-B -o eth0 -j MASQUERADE 3. Открываем шлагбаум (FORWARD). По умолчанию Linux запрещает пересылку пакетов. Если у вас в таблице FORWARD стоит политика DROP, добавьте правила для пропуска трафика к хосту B и обратно: # Разрешить трафик к хосту B на порт 22: iptables -A FORWARD -p tcp -d ip-addr-host-B --dport 22 -j ACCEPT # Разрешить ответный трафик от хоста B iptables -A FORWARD -p tcp -s ip-addr-host-B -j ACCEPT Профит 🚀 Теперь ввожу одну команду, и я на сервере B: ssh ilya@A -p 2222 -i my_private_key
743
просмотров
1954
символов
Да
эмодзи
Нет
медиа

Другие посты @miminet_tcpip

Все посты канала →
Проброс портов (Port Forwarding): решаем проблему с двумя се — @miminet_tcpip | PostSniper