У меня есть следующее слушание PORT:IP, настроенный на моем сервере Ubuntu.
12.345.67.890:3636
Это получает запросы отлично, однако, я теперь хотел бы передать любые запросы к тому IP:PORT к другому IP:PORT, т.е.:
09.876.54.321:3636
По существу я хочу сделать запрос вперед 12.345.67.890:3636 -> 09.876.54.321:3636
.
Как я могу пойти об этом в Терминале и если я хотел возвратить его, как я могу пойти об этом также? Существует ли также способ протестировать это, данные передают, и это - установка правильно?
Спасибо!
Править: Я могу просто сделать следующим образом, просто задавшись вопросом, как я пошел бы о тестировании его и как я мог отключить его?
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 3636 -j DNAT --to-destination 09.876.54.321:3636
iptables -t nat -A POSTROUTING -j MASQUERADE
Команд в Вашем вопросе достаточно, чтобы позволить направить и вперед 12.345.67.890:3636 к 09.876.54.321:3636.
Используйте цель ЖУРНАЛА iptable для контроля то, что происходит:
iptables -I FORWARD -j LOG
Необходимо видеть что-то вроде этого в/var/log/syslog:
Aug 19 08:43:23 hostname kernel: [190951.964227] IN=eth0 OUT=eth0 SRC=11.22.33.44 DST=09.876.54.321 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=51600 DF PROTO=TCP SPT=41960 DPT=3636 WINDOW=246 RES=0x00 ACK URGP=0
Сбросьте правила iptables очистить все:
iptables -F
Когда дело доходит до удаления возможности маршрутизации порта никакой ответ не был то, учитывая, что выключит передачу (экспериментально проверенный на Ubuntu 18.04.2).
Кредиты: вопрос @DT.DTDG значительно точно указан, спасибо. Этот вопрос плюс ответ @Eric помог мне решающий что-то, Спасибо! И я пошел далее в исследовании этой темы, таким образом, я хочу поделиться знаниями с сообществом.
Для чистки правил маршрутизации необходимо удалить их из таблицы маршрутизации NAT (Сетевая Таблица преобразования Addres). Вы достигаете этого этим:
iptables -F -t nat
Иначе: если Вы пропустите "-t туземный" параметр, то правила, упомянутые в вопросе, продолжат работать (например, в Ubuntu 18.04.2).
Кроме того, параметру ядра нужна отдельная команда. Если Вы хотите добраться, все очистили Вас, также имеют к:
sysctl net.ipv4.ip_forward=0
Обычно сильно рекомендуется не позволить передать пакетов между интерфейсами в системах, которые не являются маршрутизаторами из соображений безопасности.
Все действия обычно нуждаются в наращиваемом priviledges, выполняют их, предшествовал с sudo
или как "корень".
Протоколы рекламы. Команды, которые настраивают маршрутизацию:
CUR_PORT = текущий порт машины
DES_IP = целевой IP-адрес машины
DES_PORT = целевой порт машины
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport CUR_PORT -j DNAT --to-destination DES_IP:DES_PORT
iptables -t nat -A POSTROUTING -j MASQUERADE