9

Дома я подключен к IPv6-адресу и, кроме того, мой провайдер предоставляет настройку, подобную NAT, через которую я получаю общедоступный IPv4-адрес, которым я делюсь с другими клиентами (очевидно, что у нас мало IPv4-адресов).

В результате я не могу подключиться к своим устройствам дома (например, к своему VPN-шлюзу), когда нахожусь в сети IPv4. Тем не менее, у меня есть сервер, который имеет IPv4 и IPv6-адрес. Таким образом, должна быть возможность доступа к моим домашним устройствам, если я пройду через свой сервер.

Вот что я имею в виду: поскольку на IPv6 каждое устройство получает свой собственный IP, мой домашний сервер получает статический IPv6 IP. Мой удаленный сервер уже имеет статический IPv4 и IPv6.

Когда я теперь хочу получить доступ к своему серверу OpenVPN дома, ранее я открывал порт 1194 в моем маршрутизаторе, и NAT передавал туда соединения с сервером. В моем новом сценарии я хочу подключиться к порту 1194 (или другому, неважно) на моем удаленном сервере, и оно должно принять это подключение и туннелировать его на мой домашний сервер (видя, что у них обоих есть IPv6).

Графически это будет означать:

Мобильное устройство (IPv4) -> Удаленный сервер (IPv4+IPv6) -> Домашний сервер (IPv6)

Но это должно происходить только на выбранных портах (или есть даже более умный способ, чем выбирать по порту?).

У меня вопрос, как мне добиться этой настройки?

На каком уровне это должно работать? Если я хочу сделать это по порту, я, очевидно, должен переслать пакет на уровне TCP/UDP. Моей первой идеей будет iptables, но может ли iptables переслать пакет на удаленный IP? Или есть другое программное обеспечение, которое может? Или я должен создать туннель между двумя серверами, а затем переслать это локально? Как бы я пошел об этом?

1 ответ1

10

Наконец-то я нашел решение с переадресацией портов IPv4 на хосты только для IPv6, которые в основном используют socat:

socat TCP4-LISTEN:22,fork,su=nobody TCP6:[2a01:198:79d:1::8]:22

Мое решение в основном то же самое, за исключением того, что я использую имя хоста за исключением статического IP там. Старайтесь не использовать квадратные скобки с именем хоста, так как это будет интерпретировать его как IP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .