%20-%3E%20%D0%9A%D0%B0%D0%B1%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BC%20(DHCP)%20-%3E%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82.png)
У меня есть Raspberry Pi, который подключается к моему Airport Extreme через DHCP. Airport подключен к моему кабельному модему, который получает свой IP-адрес через DHCP от Comcast. Я хотел бы иметь возможность обращаться к RPi из удаленного местоположения через доменное имя, которое я зарегистрировал. Я понимаю, что для этого мне нужно использовать Dynamic DNS, но я не уверен, как работать с несколькими уровнями DHCP.
решение1
Если кабельный модем — это простой модем, то единственный адрес, который имеет значение, — это ВНЕШНИЙ адрес, который он получает от Comcast. Это тот, который видит весь остальной мир.
Любой, кто подключится к Pi, по-прежнему сможет видеть только этот один адрес, поэтому вам необходимо устройство, которое может выполнять преобразование сетевых адресов (NAT).
Простой модем не сможет этого сделать, но если «модем» на самом деле является маршрутизатором, то на его веб-сайте конфигурации будет одна или несколько страниц для настройки таких вещей, как «виртуальные серверы», NAT и переадресация портов (названия меняются в зависимости от производителя).
Если модем этого не сделает, возможно, это сделает Airport. В любом случае, самая простая конфигурация, с которой можно справиться, — убедиться, что и внутренние адреса модема, и те, которые предоставляет Airport, находятся в одном диапазоне. Так что если модем предоставляет внутренние адреса, такие как 192.168.1.x, с маской сети 255.255.255.0, что довольно типично, — убедитесь, что Airport предоставляет адреса DHCP в том же наборе из 255 адресов. Просто убедитесь, что они не перекрываются. Вам также нужно будет настроить адрес Pi как фиксированный адрес. Хорошие маршрутизаторы, такие как мой Billion 7800N, могут делать это с помощью DHCP, с дешевыми маршрутизаторами вам нужно будет дать Pi фиксированный адрес, который не конфликтует с адресами DHCP.
Например, у меня дома есть маршрутизатор, который обеспечивает как проводную, так и беспроводную сеть, а также точка доступа Wi-Fi, которая обеспечивает вторую беспроводную сеть. Я установил DHCP маршрутизатора на доставку 192.168.1.100 - .150, а точку доступа Wi-Fi на доставку 192.168.1.151 - .199, оба с сетевой маской 255.255.255.0, чтобы любое устройство во внутренней сети могло маршрутизироваться к любому другому. У меня есть несколько устройств, которые могут выступать в качестве серверов и которым дается фиксированный адрес DHCP на основе их MAC-адреса.
Когда вы с этим разберетесь, настройте «модем», предполагая, что это на самом деле маршрутизатор (в противном случае вам придется попытаться заставить Airport сделать это или настроить ПК в качестве маршрутизатора) для пересылки запросов на ваш внешний IP-адрес и удобный порт (например, 8080) на внутренний адрес и порт службы Pi, к которой вы хотите получить доступ (например, порт 22 для SSH).
Однако есть еще одна проблема. Вполне возможно, что Comcast на самом деле не дает вам фиксированный внешний IP-адрес! Если это так, то вам нужно настроить Dynamic DNS forwarder. Большинство приличных маршрутизаторов уже имеют встроенную функцию. Вы настраиваете соединение с маршрутизатора на выбранную вами службу Dynamic DNS, и маршрутизатор обновляет службу, когда ваш внешний IP-адрес меняется.
Чтобы настроить приобретенный вами домен на использование динамической адресации, вместо указания доменного имени на IP-адрес, как вы обычно делаете, вы указываете ему на адрес, предоставленный службой динамического DNS. У вашего поставщика услуг DNS должны быть подробности.
Ого, какой сумбурный ответ! Надеюсь, он имеет смысл. В общем, это довольно легко сделать, если у вас есть приличный маршрутизатор, используйте постоянный диапазон внутренних IP-адресов для маршрутизатора и Wi-Fi и зарегистрируйтесь в службе динамического DNS, такой как NoIP или Dyndns и т. д.