18

У меня есть встроенное устройство, которое я могу программировать через Ethernet IP, когда оно подключено к тому же маршрутизатору с ПК следующим образом:

Можно ли отправлять весь трафик через Интернет и при этом иметь возможность его программировать? Чтобы сделать это немного более понятным, что-то вроде:

5 ответов5

50

Простой (и небезопасный) метод

То, что вы ищете, называется переадресацией портов [ 1 ] [ 2 ].

Например, допустим следующее:

  • Ваше программируемое устройство работает через порт 22 и имеет IP 192.168.1.5

  • Ваш публичный IP-адрес 122.176.11.55

Затем вы можете перейти в настройки вашего маршрутизатора и переслать порт WAN (например, 8022) на 192.168.1.5:22 .

Теперь вы можете получить удаленный доступ к устройству из любого места через Интернет, 122.176.11.55:8022 вместо 192.168.1.5:22 в вашей IDE.

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

ПРИМЕЧАНИЕ: если ваше устройство не имеет какой-либо метод аутентификации, кто-то со злым умыслом почти наверняка найдет доступ к нему в открытой сети. Смотрите ниже безопасную альтернативу.

Безопасный (и, честно говоря, не намного более сложный) метод

Оставьте компьютер (или малиновый пи, или аналогичный) , подключенный к сети, а также доступ , который удаленно вместо через что - то безопасное , как SSH, а затем запрограммировать устройство через него по локальной сети.
Это также имеет дополнительное преимущество работы, даже если ваше устройство не использует TCP или UDP :)

Да, немного утомительно. Но безопасно.

10

Единственным правильным ответом может быть "VPN".

Простое использование IPv6 будет "работать" (при условии, что маршрутизатор не настроен на брандмауэр от устройства, а все интернет-провайдеры, устройства и ноутбуки поддерживают IPv6), но это ужасная идея по той же причине, по которой переадресация портов.

Кроме способствовало известной IPv6 пропаганды, вы на самом деле не хотите какое - либо из устройств в локальной сети , будучи однозначно идентифицировать или даже доступной из Интернета. Нет, это не очень хорошая вещь.

Переадресация портов "работает" со старым добрым IPv4, но делает устройство доступным не только для вас, но и для всех. Никто не знает, так что это не проблема, верно?
Что ж, есть армия автоматических сканеров портов, работающих круглосуточно и сканирующих случайные адреса / порты, в надежде, что что-нибудь, где угодно, возможно, ответит, поэтому вообще наличие любого устройства, которое ответит на внешний запрос онлайн, не является оптимальным. Если устройство с радостью запрограммирует себя в соответствии с тем, что поступает через сеть, это рецепт для бездействия.
Вышесказанное в принципе верно и для VPN, но это в значительной степени хорошо, если вы хотите получить доступ. Единственная действительно безопасная вещь - это вообще отсутствие подключения к интернету, что по понятным причинам не практично. Следующая безопасная вещь, когда нет интернета - это VPN. Ровно один порт на ровно одном устройстве (ну, это зависит, до трех портов), выставляя VPN и ничего больше, перенаправляемый в интернет.

VPN позволяет - но никто другой - получить доступ к устройству в вашей локальной сети через Интернет, как если бы вы были в той же локальной сети (хотя и немного медленнее). Это предотвращает несанкционированный доступ, обеспечивает конфиденциальность и целостность данных.

Практически каждый маршрутизатор без дерьма поддерживает по крайней мере один вариант VPN из коробки. К сожалению, в зависимости от используемой модели маршрутизатора, это может быть плохой вид VPN или плохо документировано, как настроить удаленный компьютер. Тем не менее, несмотря на возможные трудности с выяснением, как его настроить - если у вас нет ничего лучше, это, безусловно, лучший вариант!
Наиболее распространенные NAS-блоки поддерживают два или три метода VPN без присоски, и каждый 3-ваттный компьютер размером с 20 долларовых карт может работать с VPN-сервером, без проблем. Даже многие современные мобильные телефоны поддерживают VPN без необходимости установки дополнительного программного обеспечения, поэтому вы даже можете получить доступ к домашней сети, когда используете мобильный интернет вашего телефона (даже через частную точку доступа).

Например, L2TP/IPSec, возможно, не самый лучший выбор, но он на 99% хорош и занимает одну минуту для настройки на Disk Station и на моем телефоне Samsung. Еще одна минута, если мой ноутбук с Windows будет использовать его (независимо от телефона). Никакого дополнительного программного обеспечения не требуется.
OpenVPN занимает 3-5 минут, потому что вам нужно скачать установочное программное обеспечение клиента на ноутбуке. Но на более широкой картине 5-минутная установка считается "нулем" по сравнению с совершенно небезопасной.

2

Разместите VPN в устройстве маршрутизатора / шлюза безопасности или в другом ящике с переадресацией портов на этот ящик. Всякий раз, когда вы хотите работать удаленно, подключитесь к VPN, и вы увидите встроенное устройство, как если бы оно было в локальной сети. Вероятно , было бы хорошей идеей , чтобы поместить встроенный прибор в изолированной подсети, чтобы предотвратить нападения на главной сети , если VPN или встроенное устройство находится под угрозой.

1

Сделайте ПК с Windows без IDE на ПК с Linux в достаточно безопасной конфигурации с запущенным sshd. Перенаправьте порт с вашего маршрутизатора на порт SSH на компьютере с Linux. Используйте SSH-туннели для подключения к IP встроенного устройства. Затем при программировании на удаленной машине с IDE вы будете подключаться к localhost вместо IP-адреса локальной сети.

Прослушивание в Интернете с усиленной службой, такой как SSH, достаточно безопасно. Прослушивание непосредственно в Интернете с чем развитие сказочно плохая идея. SSH является привратником. Если вы удостоверитесь, что подтвердили ключ хоста, он полностью защищает от MITM. Используется хорошая криптография. Настройка туннелирования не включает маршрутизацию или мостовое соединение, а выглядит так, как будто вы подключаетесь напрямую с машины SSHD. Это значительно проще для правильной настройки.

-1

Недавно я наткнулся на лучшее решение для личного удаленного доступа. Сначала давайте обсудим масштабы проблемы. В игру вступают три проблемы: nat, ip-адрес и безопасность. Например, в распространенных случаях, когда вы хотите запустить ssh или веб-сервер в домашней сети, традиционным подходом является переадресация портов и динамический dns, а также лучшие отраслевые стандарты безопасности. Это имеет недостатки для вашего случая, так как ваше устройство не имеет стандартной безопасности. Этого можно избежать, используя переадресацию порта ssh, а не открытие устройства в Интернет, но вам все равно придется иметь дело с обходом nat, так как ваше устройство (и ssh-сервер на вашем raspberry pi, который вы собираетесь настроить) не имеет общедоступный IP-адрес и IP-адрес вашего маршрутизатора могут быть изменены (при условии, что между вами и Интернетом существует только один параметр nat), вам все равно потребуется настроить переадресацию портов (или, в случае нескольких маршрутизаторов, переадресацию нескольких портов) и динамический DNS, так что вы все еще можете добраться до вашего SSH-сервера.

Есть, однако, более простое решение, и верите или нет, это скрытые сервисы. Скрытые сервисы в основном действуют как переадресация портов, но автоматически обрабатывают обход nat и не имеют изменяющегося адреса, поэтому динамический dns не нужен. Конечно, есть проблемы с запоминанием адреса лука, но если вы единственный пользователь, вы можете записать его в один из файлов вашего проекта. Я бы порекомендовал по-прежнему сопоставлять это с сервером ssh для обеспечения аутентификации, но вы можете решить, что достаточно длинного адреса лука. Кроме того, скрытые сервисы обеспечивают шифрование всей ссылки, за исключением последнего перехода, поэтому единственный способ выздороветь - это сквозное шифрование, но это будет зависеть от устройства, которое вы программируете.

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