5

В моем доме был сервер Linux/Apache, доменное имя, размещенное на 1and1, которое указывает на мой публичный IP-адрес Comcast (только для тестирования, я знаю, что мне не разрешено размещать сайт), и маршрутизатор D-Link, который перенаправляет порт 80 на сервер Linux. Все работало идеально.

Затем я купил новый маршрутизатор Linksys, и все перестало работать.

После устранения неполадок я обнаружил, что мой домашний IP-адрес больше не соответствует IP-адресу, установленному в 1and1. Кроме того, IP-адрес в 1and1 находится за сотни миль.

Это нормально? Как часто будет меняться IP? Что я могу сделать, чтобы предотвратить?

4 ответа4

5

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

Существуют службы "динамического DNS" - Dyn (ранее Dyndns) и No-IP (два из них), которые позволят вам создать учетную запись, получить имя хоста DNS, а затем запустить "клиента обновления" где-нибудь в вашей внутренней сети. Клиент обновления будет периодически проверять ваш внешний IP и сообщать об изменениях в сервисе. Итак, этот DNS будет преобразован в ваш публичный IP.

Дин раньше был свободен, No-IP по-прежнему AFAIK (это могло измениться).

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

2
  1. Нет, вы не можете запретить Comcast изменять ваш IP-адрес, если вы не приобрели у них статический IP-адрес.
  2. Когда вы меняете свой маршрутизатор /MAC, они, скорее всего, выдадут новый IP-адрес.
  3. По моему опыту Comcast меняет IP-адреса каждые 1-3 года

Один из способов синхронизировать ваш «динамический IP-адрес» с вашим DNS-сервером - использовать такие службы, как Dyn или NoIP, которые предоставляют свои собственные доменные имена / доменные имена для покупки.

Однако если у вас есть собственное доменное имя, которое вы хотели бы использовать, вы можете использовать службы DNS от NameSilo (http://www.namesilo.com) в качестве вашего DNS-провайдера и скрипт Windows PowerShill ниже вместе с запланированным задача для репликации службы Dyn/NoIP.

Предполагая, что вы используете Windows, вот простой сценарий, который вы можете "запланировать" с помощью Task Scheduler для запуска при запуске / входе в систему, а затем перезапускать каждые 6 часов (таким образом, максимальное время простоя из-за изменения IP-адреса составляет 6 часов).

Сохраните приведенный ниже скрипт в файл с именем NameSiloDDNS.ps1

# NameSilo API Dynamic DNS
#Variables
param([string]$APIkey=$(throw "APIKey is required"), [string]$domain=$(throw "Domain is required"), [string]$record)


###Code - Do not edit below this line
# Gather data about the DNS entries in the domain
$listdomains = Invoke-RestMethod -Uri "https://www.namesilo.com/apibatch/dnsListRecords?version=1&type=xml&key=$APIkey&domain=$domain"
$CurrentIP = $listdomains.namesilo.request.ip
if ($record) {
    $RecordIP = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$record.$domain" -and $_.type -eq "A"}).value
    $RecordID = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$record.$domain" -and $_.type -eq "A"}).record_id
} else {
    $RecordIP = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$domain" -and $_.type -eq "A"}).value
    $RecordID = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$domain" -and $_.type -eq "A"}).record_id
}
$listdomains.namesilo.reply
#Write-Host "CurrentIP $CurrentIP, RecordIP $RecordIP, RecordID $RecordID"

# If the current IP address is not the same as the one in the record it updates it
Write-Host "https://www.namesilo.com/apibatch/dnsUpdateRecord?version=1&type=xml&key=$APIkey&domain=$domain&rrid=$RecordID&rrhost=$record&rrvalue=$CurrentIP&rrttl=3600"
if ($CurrentIP -ne $RecordIP){
    if ($record) {
        Write-Host "Updating $record.$domain with IP $CurrentIP"
    } else {
        Write-Host "Updating $domain with IP $CurrentIP"
    }
    $update = Invoke-RestMethod -Uri "https://www.namesilo.com/apibatch/dnsUpdateRecord?version=1&type=xml&key=$APIkey&domain=$domain&rrid=$RecordID&rrhost=$record&rrvalue=$CurrentIP&rrttl=3600"
    $update.namesilo.reply
} else {
    Write-Host "No need to update $record.$domain, IP $CurrentIP upto date"
}

Затем сохраните скрипт ниже в файле с именем UpdateDDNSIPv4.bat .

PowerShell -ExecutionPolicy Bypass .\NameSiloDDNS.ps1 <NameSilo_API_Key> somedomain.com
PowerShell -ExecutionPolicy Bypass .\NameSiloDDNS.ps1 <NameSilo_API_Key> somedomain.com subdomain

Храните оба файла в одном каталоге. UpdateDDNSIPv4.bat - это пакетный файл, который должен вызываться планировщиком задач в вашей повторяющейся задаче.

Пару вещей, на которые стоит обратить внимание, вам нужно будет войти в свою учетную запись NameSilo и в разделе «Менеджер API» -> «Сгенерировать ключ API», который необходимо ввести в приведенном выше пакетном сценарии для замены <NameSilo_API_Key> . Этот сценарий можно использовать для обновления записей DNS A для основного домена (например, somedomain.com), а также для ваших поддоменов (например, subdomain). Вы можете создать одну строку для каждого домена / субдомена, который вы хотите обновить.

Этот сценарий автоматически найдет ваш «общедоступный IP-адрес», а затем обновит ваши DNS-записи NameSilo.

Вы можете найти BASH-эквивалент этого скрипта здесь: https://github.com/pztop/namesilo_ddns

Эквивалент скрипта на Python также можно найти по адресу:https://github.com/rbenji/DynamicDNS-for-NameSilo.

Этот скрипт был взят и настроен с http://www.forkrobotics.com/2014/10/dynamic-dns-with-namesilo-and-powershell/

Надеюсь это поможет

2

Ну, это ответ на очень старый пост, но .. Я собирал данные обновления Comcast DCHP за последние 3 года, и вот результаты:

  • Comcast выпустил 3 IP-адреса через DHCP за последние 3 года
  • Самый длинный период, когда я держал тот же IP-адрес, составляет 850 дней.
  • Самый короткий 28 дней
  • В настоящее время у меня был тот же IP за последние 193 дня
0

У меня есть кабель Time Warner, который, вероятно, очень похож на ваш Comcast. Я также использую общедоступный веб-сервер на моем Raspberry Pi, и мое доменное имя указывает на мой публичный IP-адрес. Мой IP-адрес меняется, вероятно, менее одного раза в год. Несколько раз это происходит, я просто захожу в свою учетную запись register.com и заново указываю запись A. Мне очень редко нужно это делать. За последние 5 лет это, вероятно, было около 3 раз, и по крайней мере один из них, потому что я получил новый кабельный модем. Да, это также анекдотично. Тем не менее, я думаю, что существует достаточно неподтвержденных данных, свидетельствующих о том, что общедоступный IP-адрес от провайдера кабельного Интернета вряд ли будет меняться очень часто.

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