В настоящее время у меня есть настройка, при которой из-за конфигурации, которая может потребоваться навсегда, у меня есть сервер, доступ к которому возможен только по ipv4. У меня также, однако, есть сервер, к которому может получить доступ ipv6. Мне было интересно, смогу ли я использовать iptables для пересылки трафика ipv6 через определенный порт с одного из серверов на другой, используя трафик ipv4.
15
Ответы:
В настоящее время IPtables не может этого сделать, поэтому вам необходим процесс пространства пользователя для прокси-соединений. Socat - подходящий инструмент для этого:
источник
Как отмечается в комментариях к вашему вопросу , NAT64 еще далеко не готов, даже спустя 3 года.
Вы можете, однако, попробовать
6tunnel
, как подсказывает недоумение.К счастью, он присутствует в репозиториях Debian и Ubuntu, поэтому вы можете установить его очень легко, используя
sudo apt-get install 6tunnel
. Если вы используете другую систему, вам придется собрать ее из исходного кода .Сборка из исходного кода на самом деле не сложна, и это всего лишь вопрос запуска некоторых команд (с правами root):
Вот его синтаксис, упрощенный:
[-4|-6]
необязательна и позволяет указать, будете ли вы связывать (слушать) IPv4 или IPv6 (соответственно).-l
также необязательно. Это позволяет вам выбрать, какой адрес (IPv4 или IPv6) вы хотите связать.Например, если вы хотите разрешить доступ к серверу только для IPv4, прослушивающему порт 1337, через IPv6, используйте:
Приведенная выше команда прослушивает порт 1337 на IPv6 и перенаправляет трафик на порт 1337 на той же машине через IPv4. Затем он будет работать в фоновом режиме, так что вам не нужно об этом беспокоиться.
На самом деле, вы должны настроить работу cron, чтобы убедиться, что она все еще работает.
6tunnel
предоставляет пример для вашего удобства! Запускать его при загрузке тоже не должно быть плохой идеей.Для получения дополнительной документации, запустите
6tunnel -h
илиman 6tunnel
.источник
Последние версии
xinetd
также могут прослушивать IPv6, а затем переадресовывать соединение на адрес IPv4.Пример конфигурации, которая прослушивает соединения IPv6 через порт 3389 и перенаправляет их на порт 3389 внутреннего адреса IPv4:
Это может быть полезно в более ограниченных средах, поскольку
xinetd
может быть установлено с вашей базовой системой или доступно в репозиториях утвержденных поставщиков.источник
Я хотел прокомментировать ответ Лео Лэмса и его голос, но мне не хватает репутации. Прежде всего: Большое спасибо, Лео Лам!
Для всех, кто интересуется этой темой: мой интернет-провайдер изменил свое подключение с IPv4 на IPv6 с Dual Stack Lite, что означает, что у меня больше нет собственного IPv4-адреса. Это было проблемой, так как я хочу получить доступ к своей IP-камере с любого компьютера, который не поддерживает IPv6. Чтобы решить эту проблему, я попробовал следующее:
sudo 6tunnel -6 99 192.168.178.35 80
sudo 6tunnel -4 99 IPV6PREFIXROUTER:IPV6INTERFACEIDUUBUNTUMACHINE 99
Префикс ipv6 был обозначен в моем маршрутизаторе, а идентификатор интерфейса был сопоставлен в процессе пересылки IPv6.
Теперь я могу получить доступ к камере из любого места, используя домен vServer example.com:99. Отлично! Я планирую либо получить малину, которая будет выполнять эту работу, либо банановый м3 для других задач.
источник
Больше для людей, которые находят эту страницу, чем для OP обязательно (я пришел сюда в поисках решения для подключения IPv6 для приложения IPv4 (Twisted)), одна возможность - приложение 6tunnel, прослушивающее IPv6 и перенаправляющее запросы на другой интерфейс и порт.
источник