Которые окружают? Пойдите для того с лучшей "простотой в употреблении" по сравнению с отношением "стычек"...
Если Вы не можете найти достаточно общих примеров и объяснений Вашей оболочки "Мазерати", то это - дополнительная производительность, может быть больше проблемы, чем премия...
Я нашел эту статью/сайт интересной; это может стоить чтения:
Различия в оболочке UNIX и как изменить Вашу оболочку
--tee
флаг не является частью цепочки DNAT, это - часть МАРШРУТА. Можно только использовать его после объявления -j ROUTE
. Можно получить определенную справку от iptables на предмете как это:
$ iptables -j ROUTE help
Я смотрел на Вашу команду iptables, и она не имеет никакого смысла мне. Почему Вы пытаетесь соответствовать против исходного и исходного порта пакета, когда в Вашем вопросе Вы сказали "packegs полученный относительно порта"? Вы пытаетесь разделить входящий трафик, чтобы поразить два порта или взять вывод одного порта и связать его с входом другого?
Если первый, существует действительно два шага. Вы не можете использовать мишень, чтобы получить копию пакета И исказить пакет для изменения номеров портов одновременно. Вы могли бы попробовать это на двух шагах, сначала отправив себе дубликат пакета, затем соответствуя копии только и исказив целевой порт. ПРЕДУПРЕЖДЕНИЕ: непротестированный, рассмотрите этот псевдокод:
$ sudo iptables -A PREROUTING -t mangle -p tcp -s !127.0.0.1/32 --dport 8001 -j ROUTE --gw 127.0.0.1 --tee
$ sudo iptables -A POSTROUTING -t nat -p tcp -s 127.0.0.1/32 --dport 8001 -j DNAT --to 127.0.0.1:8002
Далее к Ответ Caleb Ответ, если вы работаете с новым iptables
(v1.4.14), что больше не имеет маршрута
, вам понадобится Что-то вроде следующее, проверено на Debian Rheezy *:
iptables -A PREROUTING -t mangle -p tcp ! -s 127.0.0.1 --dport 8001 -j TEE --gateway 127.0.0.1
iptables -A OUTPUT -t nat -p tcp -s 127.0.0.1/32 --dport 8001 -j DNAT --to 127.0.0.1:8002
Тест с использованием «NetCat» ( MAN NC
). В типе окна терминала к следующему и нажмите клавишу . Введите клавишу
:
nc -l 8002
Команда будет дождаться ввода ввода, которую вы будете ввести во втором окне терминала.
В втором оконном окне S S Введите следующее и нажмите клавишу , введите клавишу
:
nc 127.0.0.1 8001
Команда будет ждать дальнейшего ввода. Введите что-нибудь и нажмите кнопку введите клавишу
. После нажатия введите клавишу
во втором окне терминала, текст, который вы набрали во втором окне терминала, должны появляться в первом окне терминала. Нажмите Ctrl
-C во втором окне, чтобы завершить сеанс.
* Этот синтаксис не , поддерживаемый в RHEL / CENTOS (6.5 или ранее) :-(, поэтому вам нужно использовать SOCAT
, чтобы входящие входящие входящие входящие в исходном порту Два новых порта. Если у вас были процессы, слушающие оригинальные приемные приема, вам нужно перенастроить их, чтобы прослушать одну из портов Tee'd AS SOCAT
теперь слушатель на оригинальном порту. См. Этот SE пост , например SOCAT
синтаксис для клонирования порта.
ROUTE
цель, используемая в вышеупомянутом ответе, является устаревшей с этой записи и не доступной в iptables на новых дистрибутивах. См. serverfault.com/questions/333155 / … – Jonathan Ben-Avraham 16.12.2014, 15:32ROUTE
цель, используемая в вышеупомянутом ответе, является устаревшей с этой записи и не доступной в iptables на новых дистрибутивах. См. serverfault.com/questions/333155 / … – Jonathan Ben-Avraham 16.12.2014, 15:32