iptables для ipv6 адресуют перенаправление портов к localhost порту

Скажите, что я хочу перенаправить 2a00:1450:400c:c01:: 71 на Порте 443 к localhost Порту 12345.

Как сделать это с Iptables?

Обновление

Okey, это - Weechat который, выполняя реле SSL на порте> =1000. Это может установить связи с IPv4 и IPv6 на этом порте. Таким образом, я хочу связать определенный IPv6:Port [2a00:1450:400c:c01:: 71]:443 к IPv6 localhost Порт [:: 1]:12345

5
задан 1 July 2014 в 22:22
3 ответа

Вы можете вызвать проблемы, потому что с IPv6 вы не должны NAT, но начиная с ядра Linux 3.8 вы можете сделать:

ip6tables -t nat -A PREROUTING -p tcp -m tcp \
          -d 2a00:1450:400c:c01::71 --dport 443 -j REDIRECT --to-ports 12345
8
ответ дан 3 December 2019 в 01:09

Этот ответ применим к исходной версии вопроса, до его редактирования. Для обновленного вопроса применим ответ, предоставленный @SanderSteffann.

Вы не можете сделать это с помощью iptables, потому что iptables обрабатывает только IPv4, а не IPv6. Вы также не можете сделать это с ip6tables, потому что ip6tables обрабатывает только IPv6, а не IPv4.

Существуют преобразователи протоколов, которые могут преобразовывать между IPv4 и IPv6. Но это может накладывать ограничения на то, какие IP-адреса они могут преобразовывать, так как IPv4 и IPv6 не имеют одинакового количества IP-адресов.

Возможно объединение транслятора протоколов для изменения IP-адреса с iptables для изменения номера порта. Но я бы не советовал использовать такую комбинацию, в частности, не зная подробностей о ваших конкретных потребностях.

В любом случае, сервер не будет иметь немедленного доступа к информации о IPv6-адресе клиента, потому что нет возможности вставить весь IPv6-адрес в IPv4-адрес клиента, видимый серверу.

Основываясь на ограниченном количестве предоставленной информации, я бы дал тот же совет, что и @MichaelHampton, просто запустить сервис на нужном порту в первую очередь. Если это не вариант, тогда задайте вопрос получше. Объясните, какой сервис вы пытались запустить, как вы пытались заставить его слушать на правильном порту, и как он не удался.

.
2
ответ дан 3 December 2019 в 01:09

этот сработал для меня, аналогично @Sander Steffann, но без жесткого IP-адреса, только интерфейс

ip6tables -t nat -I PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 2222
0
ответ дан 3 December 2019 в 01:09

Теги

Похожие вопросы