我的康卡斯特 IP 地址多久会变化一次?

我的康卡斯特 IP 地址多久会变化一次?

我家里有一台 Linux/Apache 服务器,一个由 1and1 托管的域名,指向我的 Comcast 公共 IP(仅用于测试,我知道我无权托管网站),还有一个 D-Link 路由器,将端口 80 转发到 Linux 服务器。一切都运行正常。

后来我买了一个新的 Linksys 路由器,其他东西都不再工作了。

经过排查,我发现我家的 IP 不再与 1and1 中设置的 IP 匹配。而且,1and1 中设置的 IP 位于数百英里之外。

这是正常的吗? IP 多久会改变一次? 我能做些什么来防止这种情况发生?

答案1

如果您没有从 ISP 购买静态 IP,则 ISP 没有义务永久保留通过 DHCP 租给您的 IP。因此,无论您或其他人观察到什么,您都应始终将 IP 更改视为一种可能性。如果您没有从 ISP 购买静态 IP,则 IP 更改是正常的。

有“动态 DNS”服务 - Dyn(以前称为 Dyndns)和 No-IP 就是其中两种 - 可让您创建帐户、获取 DNS 主机名,然后在内部网络的某个位置运行“更新客户端”。更新客户端将定期检查您的外部 IP 并向服务报告更改。这样,此 DNS 将解析为您的公共 IP。

Dyn 曾经是免费的,据我所知 No-IP 仍然是免费的(这可能已经改变)。

如果您希望外部请求到达网络内的特定系统,您仍需要确保正确设置 NAT。除非您运行自己的 DNS 服务器并自行解析 LAN 本地名称,否则您也无法使用此 DNS 从网络内到达主机。

答案2

好吧,这是对一个非常老的帖子的回复,但是......我过去 3 年一直在收集康卡斯特 DCHP 更新数据,结果如下:

  • 康卡斯特在过去 3 年内通过 DHCP 发放了 3 个 IP 地址
  • 我持有同一 IP 的最长时间是 850 天
  • 最短28天
  • 我目前在过去 193 天内一直使用同一个 IP

答案3

  1. 不,除非您从康卡斯特购买了静态 IP 地址,否则您无法阻止康卡斯特更改您的 IP 地址。
  2. 当您更改路由器/MAC时,他们可能会发布一个新的 IP 地址。
  3. 根据我的经验,康卡斯特每 1 到 3 年就会更改一次 IP 地址

让您的“动态 IP”与您的 DNS 保持同步的一种方法是使用 Dyn 或 NoIP 等服务,它们提供其专有域名/可供购买的域名。

但是,如果您有自己的自定义域名,则可以使用 NameSilo 的 DNS 服务(http://www.namesilo.com) 作为您的 DNS 提供商,并使用下面的 powershell windows 脚本以及计划任务来复制 Dyn/NoIP 服务。

假设您正在运行 Windows,这里有一个简单的脚本,您可以使用任务计划程序“安排”它在启动/登录时运行,然后每 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>。此脚本可用于更新A主域(例如somedomain.com)以及子域(例如subdomain)的 DNS 记录。您可以为要更新的每个域/子域创建一行。

该脚本将自动找到您的“公共 IP 地址”,然后更新您的 NameSilo DNS A 记录。

您可以在这里找到此脚本的 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/

希望这可以帮助

答案4

我有时代华纳有线电视,可能和你的康卡斯特很相似。我还在我的 Raspberry Pi 上运行公共 Web 服务器,我的域名指向我的公共 IP 地址。我的 IP 地址每年可能变化不到一次。少数几次变化时,我只需登录我的 register.com 帐户并重新指向 A 记录。我很少需要真正这样做。在过去 5 年里,大概有 3 次,其中至少有一次是因为我换了一个新的有线调制解调器。是的,这也是传闻。但是,我认为有足够的传闻证据表明有线互联网提供商的公共 IP 地址不太可能经常更改。

相关内容