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

Моя конфигурация сети

Я хочу иметь доступ к компьютерам в моей домашней сети из Интернета.

Что я думаю сделать, это создать туннель SSH от моего домашнего сервера, на котором работает сервер OpenVPN, к моему VPS, который имеет общедоступный IP-адрес с чем-то вроде

autossh -M 10984 -i /root/.ssh/pubkey -R 1194:localhost:1194 me@myvps

Затем настройте сервер / клиенты OpenVPN для использования tcp через udp и подключитесь к myvps:1194

Итак, мои вопросы:

  1. Есть лучший способ сделать это?
  2. Каковы последствия такого решения для безопасности / производительности?

1 ответ1

0

Каковы последствия такого решения для безопасности / производительности?

У вас есть два уровня шифрования (SSH и OpenVPN), которые могут снизить производительность - более высокая загрузка ЦП и более низкая пропускная способность, особенно если одно из ваших трех задействованных устройств не имеет аппаратного крипто-ускорения. (Даже тогда программное обеспечение SSH редко обеспечивает максимальную производительность.)

У вас также есть три уровня управления вложенными потоками TCP (ваш обычный трафик, внутри уровня OpenVPN, внутри уровня SSH). Это может не сработать.

И, наконец, пропускная способность будет снижена только за счет издержек туннеля (заголовки пакетов SSH и OpenVPN, поступающие в доступный базовый 1500-байтовый MTU). Конечно, один уровень неизбежен для VPN, но его удвоение может быть заметно.

direct: IPv4 <20> |                                                    | TCP <20> | application
vpn:    IPv4 <20> | UDP <8>                 | OpenVPN <41> | IPv4 <20> | TCP <20> | application
yours:  IPv4 <20> | TCP <20> | SSH <~20–40> | OpenVPN <41> | IPv4 <20> | TCP <20> | application

Есть лучший способ сделать это?

Поскольку у вас уже есть VPS, поместите туда сервер OpenVPN - и пусть ваша домашняя система подключается « VPS » к VPS, а не наоборот. (Да, сервер OpenVPN без проблем будет пересылать данные между вашим "домашним" и "роуминговым" клиентами.)

Таким образом, вы даже сможете использовать UDP без каких-либо проблем, связанных с NAT, если вы включите периодический пинг в клиенте или иным образом будете поддерживать частый трафик через туннель.

Если вы используете чан -mode VPN, сервер просто необходим маршрут ядра для вашей локальной подсети через tun0 а затем в iroute OpenVPN для одной и той же подсети через адрес домашнего VPN клиента. (С помощью VPN-режима с переключением это просто маршрут одного ядра, объединяющий оба.)

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