Назад | Перейти на главную страницу

Есть ли способ запустить VPN-сервер за натом, который никто не может контролировать?

У меня есть 4G-роутер в удаленном месте для подключения к Интернету.

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

Вероятно, это выглядит примерно так:

--------------------------------------

                Internet

--------------------------------------
               ISP NAT
--------------------------------------
    My 4G Router
------------------------
    My hardware firewall
------------------------
    My local network
------------------------

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

В этой ситуации есть ЛЮБОЙ способ запустить VPN-сервер, который может принимать входящие VPN-соединения (Я МОГУ инициализировать VPN-соединения с внешними VPN-серверами из моей локальной сети. Но я хочу иметь возможность инициировать подключения извне к VPN-сервер в моей сети)?

Простой ответ: нет. Период. Невозможно открыть порт или направить что-либо в NAT, если у вас нет контроля над NAT. Любое решение требует хотя бы внешней точки для начала координации.

Сложный ответ: у вас все еще нет - ваш внутренний VPN-сервер создает мост с внешним VPN-сервером, к которому люди подключаются. Это МОЖЕТ работать в облаке. У меня была такая же проблема в течение многих лет в нашем старом офисе (лучшее подключение к Интернету через поставщика кабельного телевидения, который просто не понимал «бизнес», и я в основном использовал VPS для запуска VPN-сервера в облаке и подключался к нему через VPN. .

Да, вы можете, если хотите установить сервер VPN на устройство Linux.

Во-первых, вам нужен активный компьютер в вашей локальной сети, на котором работает Linux. Вы также можете использовать ПК с Windows, но я не рекомендую использовать Windows для сетевых решений.

Вы можете подключиться к natted pc с помощью teredo. Требуется небольшая настройка на стороне клиента и сервера.

Сторона сервера

Установить тередо

sudo apt install miredo
sudo service miredo restart
sudo ifconfig teredo

Теперь у вас есть IPv6-адрес. Чтобы показать IP-адрес вашего сервера ifconfig teredo | grep '200' команда.

Использовать динамический DNS (DDNS)

IP-адреса Teredo меняются несколько раз из-за повторного подключения к Интернету. Это не статический ip. Также вы должны использовать динамический DNS, чтобы указать домен на адрес вашего vpn-сервера, в противном случае каждое повторное подключение требует изменения конфигурации на стороне клиента, которая заменяет адрес сервера новым.
После установки Teredo теперь вы можете установить vpn-сервер на свой компьютер или сервер. Вы можете найти очень хорошо задокументированные инструкции по установке openvpn на ubuntu.

Сторона клиента

ПК с Windows

Иногда тередо не включено по умолчанию. Вы должны включить teredo на ПК с Windows с помощью одной команды. Примечание: Запускаем cmd с правами администратора.

netsh interface teredo set state client

Linux ПК

Установить приложение miredo на стороне клиента

sudo apt install miredo

Отвечая на свой вопрос:

SoftEther https://www.softether.org/ это именно то, что я искал. Он позволяет запускать VPN-сервер за NAT и имеет функции Nat Traversal, чтобы клиенты могли подключаться к нему извне. Для устойчивых брандмауэров он также предлагает бесплатный сервис рукопожатия (https://www.vpnazure.net/) для создания туннеля между сервером и клиентом, даже если оба они находятся за NAT (трафик не проходит через сервер рукопожатия).

Кроме того, он очень прост в настройке и обладает богатым набором функций, что позволяет различным клиентам VPN подключаться к нему.