Как получить доступ к ip устройству из интернета

871
CPA

Я хочу получить доступ к устройству Windows из Интернета. Я хочу подключить свое устройство через Ethernet к любой сети. Сети подключены к интернету. У меня нет статического IP-адреса, и я ничего не знаю о сети, к которой подключено мое устройство.

Поэтому я подумал, что смогу запустить приложение на том устройстве, которое обнаружит новое соединение Ethernet. Это приложение может отправить мне фактический IP-адрес и информацию о сети на конкретную конечную точку. С этими сведениями я думал, что смогу подключиться к устройству Windows iot?

Возможно ли вообще получить автоматический доступ к устройству извне, ничего не зная из сети?

РЕДАКТИРОВАТЬ:

Когда я подключаю устройство к Ethernet, и брандмауэр позволяет ему, я хочу, чтобы устройство отправляло указанные данные в облачную службу, например Azure Event Hub. После получения событий и распознавания нового устройства в облаке я также хочу отправлять сообщения на устройство. Но я не хочу использовать DNS или VPN и не хочу использовать Azure IoT Hub, потому что я хочу иметь возможность сменить облачного провайдера.

1

2 ответа на вопрос

2
Koutheir Attouchi

In order to connect to a device in an IP network from an outside network (i.e., to cross a router boundary) without having information about the internal network, you need to initiate a connection from your IoT device to a server you have control over in the external network (e.g., Internet). If the internal network firewall allows your device to do that (that is usually allowed), then you need to connect from your computer to the external server and that server should be able to route your communications to your device. This is how TeamViewer works, for instance.

If the internal network firewall disallow your device from connecting to the external server, then you won't be able to do what you want.

If you need to go through a specific gateway to connect to the Internet (e.g., a proxy server) then you will need to have the exact credentials needed for that, otherwise your device will stay confined in the internal network.

Чтобы улучшить свой ответ, вы могли бы упомянуть об использовании, скажем, исходящего SSL-VPN-подключения от устройства IoT к внешнему серверу, а затем, когда установлено VPN-соединение, устройство может обмениваться данными через разные порты (туннелированные через VPN). Вот как работает SSTP ... отличная вещь о SSTP заключается в том, что он работает по протоколу HTTPS, и почти все брандмауэры не блокируют это, поскольку безопасные веб-сайты должны работать (почти во всех случаях). Kinnectus 8 лет назад 1
@ Большой Крис: я согласен. Я просто хотел остаться универсальным. Проблема по-прежнему будет существовать для порта HTTPS, если приложения должны взаимодействовать через аутентифицированный прокси. Koutheir Attouchi 8 лет назад 0
О, конечно, просто подумал, что я сделаю небольшое дополнение ... и ваш ответ дал отличное дополнение, чтобы помочь будущим посетителям :) Kinnectus 8 лет назад 0
Пожалуйста, смотрите отредактированный вопрос. CPA 8 лет назад 0
0
Barleyman

You can use various dynamic DNS name server apps to provide a static name so you can connect to a known address. See more in wiki: https://en.wikipedia.org/wiki/Dynamic_DNS

This won't help you getting connection to "know nothing" network. That's where UPNP comes in. You can use UPNP to create a specific port mapping automagically to the router so a known port is always routed to your ip device inside the router. More details here: https://en.wikipedia.org/wiki/Universal_Plug_and_Play#NAT_traversal

If you combine the two you should

a) Have a fixed address to connect to b) A fixed port in the address which is routed to your device

Unfortunately the name server update is not instant so if you're relying on e.g. Google name server it will take some time for the new dynamic address to propagate. Some dynamic DNS providers have their own name servers to work around this. You will be naturally exposing all of your network traffic to them that way so checking TOS wrt data mining would be appropriate.

Пожалуйста, смотрите отредактированный вопрос. CPA 8 лет назад 0