如何在动态分配的IP地址上托管网站?


15

我最近将我的互联网升级到了一个比我目前的网络主机更快,更可靠的地步。我想将当前域移到家里,但我的IP地址是动态的。据我所知,我只有在重启调制解调器和/或路由器(几乎从来没有)或电缆(我的ISP)推出固件更新(很少)时才获得一个新IP。

我可以通过几种方式查看此信息:

  1. 说服我的ISP给我一个静态IP

  2. 为我的路由器分配当前IP以强制使用静态IP(可能有效吗?)

  3. 将我的DNS记录设置为当前的IP地址,并在极少数情况下对其进行更新。

显然,我希望第一个可行,但是我不想花很多额外的钱(如果需要的话)来获得一个静态IP地址。

以下哪个选项最可靠?


1
我的ISP强迫我升级计划,只是为了打开HTTP和Sendmail端口。他们的网站说,由于与病毒有关,他们保持80端口关闭。他们使用吓人策略让小企业主支付更高的价格,这真是令人惊讶。我无法从他们那里得到直接的答案,为什么当数以亿计的网站中有99%在80端口上运行时,为什么他们建议病毒在80端口上传播。我怀疑您的ISP将免费为您提供静态IP,它们会如果他们这样做的话,会很棒。
Anagio

Answers:


17

您不能简单地为路由器分配静态IP以获得静态IP。大多数宽带提供商允许您从他们那里租用静态IP,但需支付额外的月费。但是您最好将它花在像样的虚拟主机上,因为它更便宜,更省事,并且可以有更长的正常运行时间。另外,大多数住宅宽带连接的上行速度确实很差。甚至有一些ToS禁止运行任何类型的Internet服务器,除非您升级到业务计划。

但是,如果您仍然打算在家中托管站点,则可以使用动态DNS服务,该服务将在IP更改时自动更新DNS记录。尽管这样做有很多不利之处。首先,除非您将TTL时间设置得很短,否则将用户路由到旧IP且无法访问您的网站的机会很高。但是,如果您将TTL设置得很低,则用户将不得不频繁发出DNS请求,这会降低性能。


2
我同意,我会为新主机付费,而不是尝试通过住宅连接来设置自己的服务器。
文斯·佩蒂特

1
我要移动的子域是我的测试开发子域。对于客户而言,这并不是至关重要的(大多数客户甚至都不知道它在那里)。我为ISP支付了一个静态IP地址的费用,每月仅需额外支付5美元,再加上他们为我提高了上传速度。
尼克

@nick:在这种情况下,这似乎是一个合理的设置/不错的选择。
冒犯君主

您还可以使用CNAME使家庭服务器可以从您拥有的域访问(仍然需要动态dns服务)。
Andrew Shooner 2013年

6

我还在本地DHCP服务器上托管一个网站。即使使用DHCP连接,即使断电,我的IP也不会更改。该协议通过检查我的mac地址并尝试将我的旧IP退还给我来工作。尽管我通常在调制解调器出现故障时会丢失IP,但ISP进行任何工作都可以。

我使用no-ip.com托管网站的方式,即使它们更改了,也可以告诉他们我的IP地址是什么。他们管理DNS记录,以便当人们访问www.mydomain.com时,它会检查no-ip.com的DNS记录并查看我的IP地址以将流量路由至。

现在,我的linksys将www,mysqld和ftp通信转发到内部服务器192.168.15.11以获取示例。我的常规工作桌面具有192.168.15.10,因此我的Web服务器可以运行Ubuntu / Nginx来提供页面,并且我仍然可以在Windows上的另一台计算机上工作。

每当您的IP从no-ip.com更改Windows应用程序时,会将更新推送到您的no-ip.com帐户,并且DNS保持最新。


3

希望使用动态DNS(DDNS)服务,例如Dyn。DDNS提供程序允许动态IP使用静态域名。对于低流量站点,该服务相当便宜。DDNS的工作方式是将路由器设置为使用当前IP定期更新持有域名的DDNS服务。在路由器级别使用DDNS比在服务器端运行某种应用程序本质上做相同的事情要方便得多。随后输入您的域名的Internet用户将始终被DDNS提供程序重定向到正确的IP地址。DD-WRT支持许多不同的DDNS提供程序API。DynDNS可能是最受欢迎的,Linksys和Belkin在其本机固件中支持DynDNS API。


1

实际上是可能的。并且有一种简单的方法可以使其自动化。

就是这样。和一个样机脚本来帮助您入门(功能齐全)

  1. 在fear.org上注册一个帐户,并将其用作您的名称服务器。如果要免费,则必须允许其他人可以(请求或自由使用)您域中任何子域的内容。选择每个请求都需要您的批准,这意味着您不会给予这些请求,并且没有其他人会使用您的域。或只需支付5 ^

  2. 创建一个没有IP或dydyns的帐户,并为您的主机选择一个免费的子域(因为no-ip开始为免费用户进行每月的验证码),您将使用该域将其与您实际域指向的ip进行比较(注意,如果可以获取,则只能使用WAN ip,我这样发布是因为有些人无法从路由器/调制解调器等获取它,也可以使用whatismyip / com / org / net之类的东西。或者只是简单地定期运行下面的更新脚本)

  3. 创建bash或类似以下内容的脚本:

#!/ bin / bash
#
#
#不要忘记设置noip服务
#RIP var将是我们的真实IP,CIP将是当前的IP,这让组织感到害怕
#nameservers指向。 
#同样,如果您不删除或将“ ip.of.nameserver.here.if.you.want”替换为 
您要使用的#act名称服务器,而不是默认名称服务器。 
#请杀了我

RIP =`nslookup yourhost.dyndns.org ip.of.nameserver.here.if.you.want | grep地址:| awk'NR == 2 {print $ 2}'`
CIP =`nslookup yourdomain.com ip.of.nameserver.here.if.you.want | grep地址:| awk'NR == 2 {print $ 2}'`
如果[$ RIP = $ CIP]#是您的dyndns / no-ip主机的ip与域ip相同
然后
回声“是的,是一样的”#您并不需要这个,只是为了说明
其他
回声“他们不一样,正在更新...” 
#再次,您也不需要此行,但是下面的行使用的是您将从中获得的uri
您将使用的#afraid.org(例如,与lynx结合使用)或将您的dns条目更新为当前ip

lynx -dump“ http:// freedns(dot)afraid(dot)org / dynamic / update.php?YOUR_UNIQUE_UPDATE_CODE_GOES_HERE”> / dev / null
科幻

。3.创建cron.d作业,每隔几分钟运行一次,并执行上述ip.sh脚本。crontab条目应如下所示:

* / 10 * * * * /path/to/script/ip.sh> / dev / null 2>&1
  1. ???
  2. 利润!现在,您可以将域名托管在动态IP上,并在5分钟内完成了所有操作。我赢了。

1

一些DNS注册商具有API,可让您通过Web请求更新A记录(路由器IP地址)。

然后,您可以编写一个脚本来收集您当前的公共IP地址,并通过API将其发送给DNS提供商,并更新必要的DNS记录以匹配您当前的IP地址。

然后,您可以安排脚本定期运行(例如每天一次)以维护信息。

我已经写了一个,它可以用作示例,Github链接在此处


-1

您可以使用Noip.com之类的服务,您的网站将可以访问,但是我认为Google的蜘蛛不会抓取您的网站。我认为当他们被重定向到您的网站时,它们会丢弃您。我希望我错了,但这就是我被告知的内容。因此,您可能需要人们在Google的搜索引擎上找到您,您可能不走运。人们仍然可以看到您的名片,然后直接找您。


3
Noip.com是其他答案建议的动态DNS服务。Googlebot将抓取动态DNS网站,因此您的答案是错误的。我在该问题中没有看到任何有关重定向的信息,因此我不确定您在说什么。
斯蒂芬·奥斯特米勒

1
@Kenny Ray Oxenrider,您的信息不正确。我已经在网站上使用了no-ip.com。Googlebot像其他网络爬虫(例如Baidu,Yandex等)一样对页面进行爬网和索引。通过查询到No-IP的DNS服务器的DNS查询可以查找该站点的IP地址,就像查找其他任何站点的IP地址一样任何其他DNS服务器。没有重定向,因为有人使用No-IP进行DNS服务。
moonpoint '17

@StephenOstermiller> “我在问题中没有看到有关重定向的任何信息” no-ip.com有一个称为Web redirect的选项,该选项允许将主机名重定向到特定端口上的URL或IPv4地址。这是非常有用的,当ISP块的标准端口80
马克MESSA

@moonpoint> “没有重定向,因为一个人正在使用No-IP进行DNS服务。” 取决于是否设置了Web重定向。如果设置,谷歌通常不会索引。
马克·梅萨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.