是否可以在不租用托管服务器的情况下使我的网站在全球范围内可用?


8

我知道这个问题是基本问题,但我来自iOS背景,也是初学者。对于一些困惑,我需要一个明确的结论。

这个矛盾的问题我得到了很多答案。我曾在Google上搜索过此问题。有人说,要使您的网站可以在Internet上使用,您必须:

(1)在Amazon,GoDaddy,BigRock等托管服务器提供商上托管您的网站。

(2)为您的网站获取一个域名。有人说,您可以在自己的服务器上托管网站,并使其在全球范围内可用。在这种情况下,客户端将通过IP而不是域名进行请求。

我的问题是,我可以在下列条件下建立网站并将其在全球范围内公开:

  • 与其在托管服务提供商(如Amazon)上托管网站,不如将其托管在我自己的服务器上。无论带宽,性能还是正常运行时间。
  • 我不要域名。无论人们使用我的公共IP(例如123.456.789.0)访问我的网站,还是出于好奇而添加此条件。

提前致谢 !!!

Answers:


12

如果愿意,您可以在家庭系统上托管网站。不过,有一个警告。一些Internet服务提供商(ISP)不允许其客户托管自己的服务器,而其他Internet服务提供商则允许您托管。不允许家庭用户托管自己的服务器的ISP可能会阻止服务器常用端口上的流量。例如,通过阻止从Internet到分配给家庭用户的IP地址上的端口25的连接,它可以阻止某人运行自己的邮件服务器。同样,通过阻止HTTP使用的默认端口,端口80和HTTPS使用的默认端口,它可以阻止某人托管自己的Web服务器。,端口443。通过在非标准端口上运行Web服务器,某人也许能够绕过此类阻止。例如,如果将Web服务器配置为侦听端口7080上的HTTP连接,则如果您可以将该端口号提供给所有可能访问您的站点的人,他们仍然可以访问该服务器。例如,网站访问者可以使用http://www.example.com:7080/来代替http://www.example.com/sompage.htmlhttp://10.0.0.5/somepage.html来使用somepage.htmlhttp://10.0.0.5/sompage.html。尽管即使是该流量也可能被ISP阻止。

如果您希望只有几个朋友访问您的网站,则该解决方案可能会起作用,但如果您希望站点拥有全球互联网受众,则该解决方案可能会出现问题,因为大多数人都不习惯在访问时包含端口号网站。但是,如果您要从其他站点链接到您的站点,则只要包含端口号,该链接就可以工作。

但是,假设ISP不会阻止您托管自己的Web服务器。您将需要配置路由器,以发往默认HTTP端口(可能还会使用HTTPS)的流量转发到局域网(LAN)上Web服务器的内部专用IP地址(如果您也将使用该协议。这是必要的,因为大多数家庭用户都有一个路由器执行网络地址转换,以实现LAN侧路由器后面的系统与路由器“面向互联网”的外部(即广域网(WAN))之间的通信。 )。即,它们具有一个用于路由器的外部公共IP地址,但可能有多个私有IP地址用于路由器后面的系统。例如,您可能在路由器后面有一台笔记本电脑,其地址为192.168.0.4,而台式机系统的IP地址为192.168.0.5。这些专用IP地址不会通过Internet路由。家用路由器通常将执行NAT,以允许仅看到一个公共IP地址的外部系统与具有专用IP地址的路由器后面的系统通信。

大多数家用路由器都具有执行网络地址和端口地址转换的功能,并且通常很容易设置,您只需要知道必须这样做即可。某些路由器可能具有非军事区(DMZ)设置,该设置使您可以指定源自路由器外部的所有连接都将转到路由器内部的特定系统。如果您希望通过NAT / PAT可以访问家庭服务器,则可能需要为其分配一个静态IP地址,而不是一个可能会更改的地址,因为它是通过动态主机配置协议(DHCP)分配的,因此路由器可以始终将传入的连接路由到正确的系统。

除了路由器内部的系统IP地址可能会更改之外,如果您使用的是家庭网络连接,则ISP可能还会通过DHCP分配路由器的外部IP地址。假设它是xxx.xxx.10.250。明天可能是xxx.xxx.10.251。这取决于ISP通过DHCP为客户分配IP地址所使用的“租用时间”。租约时间可能是几个小时,几天,一个月等。因此,如果您告诉人们您的Web服务器可以在xxx.xxx.10.250上访问,则每当更改时,您都需要告诉他们新的地址。但是,对于某些系统,即使您的ISP可能没有为您提供静态IP地址,而是提供了动态IP地址,但只要您不更换路由器,它就可以保持不变。例如,对于我的家庭互联网服务,我不来自新路由器的媒体访问控制地址。

即使您的IP地址经常更改,您也可以从ISP购买静态IP地址。有些会按月向家庭用户出售静态IP地址,而有些则不会。

但是,当我需要能够从外部连接到家庭用户的系统进行故障排除或设置基于家庭的服务器时,我使用的解决方案是使用动态域名系统。这样,即使路由器的外部IP地址有所不同,也可以使用完全限定的域名(FQDN)(例如martijn.example.com 访问基于家庭的服务器。我使用No-IP.com,但还有其他DDNS服务。DDNS的工作方式是在路由器内部LAN侧的系统上安装软件,该系统与DDNS服务提供者系统进行定期通信,以便DDNS提供程序知道系统正在与之通信的当前外部IP地址。 。然后,DDNS提供程序将更新其域名系统(DNS)服务器,是将FQDN(例如martijn.example.com)转换为IP地址的服务器,以反映路由器的当前外部IP地址。因此,将martijn.example.com放入其浏览器的任何人都将被定向到正确的IP地址。某些路由器具有配置选项,允许您指定DDNS服务提供者,因此您甚至不需要在家庭系统上安装任何软件即可工作。您只需要拥有DDNS提供商的帐户即可。

如果您希望购买自己的域名,DDNS提供商会向您收取使用自己的域名(例如martijn.com)的费用。但是您甚至可以免费使用DDNS服务,例如,如果您愿意使用DDNS提供商提供的域名,则No-IP提供免费服务。例如,如果提供商拥有example.com,则您可以免费使用martijn.example.com,尽管您必须付费购买martijn.com。即,您可以指定一个特定的主机名,例如martijn,以与它们的域名之一一起使用。

多年来,我已经在家庭网站上使用过这种配置。如果您具有相当可靠的Internet连接,并且您的ISP不会阻止对基于家庭服务器的访问,那么它对于低流量站点实际上可以很好地工作。例如,如果您不希望每天有超过数百名访问者访问您的站点,并且还没有饱和您的可用带宽。但是,在设置基于家庭的服务器时,您需要了解一些注意事项,即我上面提到的注意事项,这可能会导致一些人建议使用托管服务。

尽管这种配置甚至可以用于小型或家庭式企业,但如果访问您的网站很关键,您的外部IP地址可以经常更改,则我不建议您将其用于小型或家庭式企业。访问您的站点时,其系统将缓存您的IP地址,以便下次访问该站点时,系统不必再次查找与该名称对应的IP地址。有生存时间(TTL)缓存的DNS条目的值,因此它们将过期,并且系统将再次查找IP地址,但是它们可能在系统上停留了几分钟甚至几小时。其他DNS服务器也缓存条目。例如,假设Mary是Comcast客户,其系统连接到martijn.example.com。她的系统可以查询Comcast DNS服务器以获取网站的IP地址。因此,现在Comcast服务器知道FQDN附带的IP地址。康卡斯特的另一位客户Bill也想访问您的网站。他以前从未访问过您的网站,因此他的系统尚未缓存martijn.example.com及其IP地址之间的转换,但是当他的系统查询Comcast DNS服务器时,如果该服务器已经知道与该服务器关联的地址, FQDN,它将从其缓存中提供答案。

因此,即使您的服务器或路由器可能在一分钟内更新了DDNS提供商的DNS服务器,如果您的IP地址发生了更改,其他人仍可能会获得旧的IP地址,因此直到他们的系统或ISP的DNS服务器都无法访问您的网站获取新的当前IP地址。由于缓存并取决于TTL设置,某些系统可能在数小时后甚至第二天仍可能尝试连接到旧IP地址。如果您只是想让家人和朋友访问您的网站,那可能不是一个严重的问题,但是如果您经营一家企业,则可能是一个无法接受的问题。

更新地址评论:

当您从域名注册商处购买域名时,通常可以选择指定应通过这些地址处的域名访问的系统的一个或多个IP地址,或者您可以暂时“停放”该名称,因此它指向属于注册服务商的系统。当您准备好指定自己的IP地址时,注册服务商通常会提供DNS服务,使您可以在需要时修改与域名相关联的IP地址。许多服务器还允许您通过其DNS服务来调整TTL值,即系统应缓存FQDN附带的IP地址的时间。因此,如果您认为可能需要经常更改IP地址,则可以指定较短的TTL。注册服务商可能具有您可以指定的最小TTL,例如5分钟或30分钟。该值通常以秒为单位指定,因此5分钟的TTL将显示为300。

因此,如果您正在使用注册服务商的DNS服务,则每次更改时都需要使用注册服务商登录帐户并手动更改与您的域名相关的IP地址。或者,您也可以使用DDNS服务提供商,以便自动进行从FQDN到IP地址的转换更改。您既可以通过DDNS服务提供商购买域名,然后默认使用其DNS服务器,也可以从其他注册商那里购买域名,然后通过该域提供的网站的配置页面为DDNS提供者的域名服务器指定IP地址域名注册商

另一种选择是运行您自己的DNS服务器。购买域名时,您可以指定应与其一起使用的名称服务器,可以是注册服务商的名称服务器,也可以是其他一些名称服务器。例如,您可能拥有与网络服务器相同的系统,即DNS服务器。您必须确保可以通过UDPTCP IP协议在端口53(DNS的默认端口)上访问服务器。然后,您可以在服务器上创建脚本/程序,该脚本/程序定期检查以查看分配给路由器的外部IP地址并更新区域文件。您的DNS服务器上的域名。但是,设置DNS服务器比依赖DDNS提供程序要复杂得多。如果您希望采用更复杂的方法,可以找到在线设置DNS服务器的教程。BIND通常用于Linux系统上的DNS服务。Microsoft的Windows服务器版本,例如Windows Server 2012,具有Microsoft提供的DNS服务也可以使用。我建议您从注册服务商的DNS服务开始,该服务通常是免费的,但是您从注册服务商那里购买了域名后,即使您认为自己可能想走一条艰难的路来运行自己的DNS服务器。除非有人想了解Internet基础设施(例如DNS服务器)如​​何工作,否则对于大多数人来说,坚持注册服务商或DDNS服务提供商的DNS服务器可能是最好的选择。您还可以通过专门从事DNS服务的公司(例如OpenDNS)获得DNS服务。

但是请记住,即使您指定了较短的TTL值并进行了自动更新,在获得新IP地址的时间与Internet上所有系统停止使用之间的延迟也可能比TTL大。旧的IP地址,然后使用新的IP地址。例如,请参阅GoDaddy文章,哪些因素影响DNS传播时间?(GoDaddy是域名注册商),这说明了为什么可能需要多达48小时才能将新地址提供给Internet上的所有系统。例如,该文章指出:“某些ISP忽略TTL设置,仅每两到三天更新一次其缓存的记录。”


1
真的非常全面。非常感谢-赞成。关于域名,我有一个问题。获取域名意味着为NAME分配IP地址。现在再次出现同样的问题。IP号码(包括公共IP)会定期更改。这背后的秘密是什么?我的意思是,我们在为网站获取域名后如何对其进行管理?
NSPratik '16

1
@NSPratik,我在上一篇文章的末尾添加了一些其他信息,以解决您的问题。
moonpoint '16

感谢@moonpoint,让我研究您的修改,并尽快回复您。我想你不是来自这个星球:D
NSPratik '16

5
我已经在Noip上免费使用自定义域名了很长时间了。您需要做的就是将您的自定义域CNAME命名为他们给您的Noip域。
Maximillian Laumeister

好答案。您可能还想增加使系统保持最新状态并摆脱漏洞的必要性。这本身就是在家中托管系统中最恐怖的部分-被黑客入侵。干杯!!
closetnoc

4

您可以开始在自己的计算机上托管它。我开始在自己的计算机上托管我的第一个网站。现在,我以网站为生。但是,当您这样做时,请注意:

  • 您的家将无法正常运行。您的站点将因各种原因而离线:暴风雪,交通事故,邻居占用带宽,微波使电路跳闸或ISP阻塞了端口。
  • 您家的带宽很差。很少有住宅ISP提供不错的上载速度(这是运行服务器所需的速度)。即使您的本地ISP很好,获得的带宽也永远不足以运行大型网站。

大多数网站都托管在数据中心。这些数据中心具有备用电源,它们位于Internet骨干网附近,您可以获得比家庭带宽便宜得多的额外带宽。

您当然可以从在家里托管您的网站开始,但是当网站变得足够大时,请准备好进行移动。您的第一个托管计划的费用为每年$ 50到$ 100。您可能需要每月支付家庭互联网服务的费用,因此开销非常小。首先从“共享托管”开始,在此您可以在托管许多网站的计算机上获得一个帐户。

为网站使用IP地址也不理想。大多数住宅ISP使用DHCP自动分配地址。地址可以(并且将)偶尔更改。您可以使用“动态DNS”解决此问题。一些动态DNS提供商会免费为您提供一个子域(mysite.example.com)。当IP地址更改时,计算机将对动态DNS服务器执行ping操作,并更改站点的IP地址。

您甚至应该在首次托管之前就考虑购买自己的域名。您通常可以将自己的主机名与动态DNS服务一起使用。域名的费用每年约为10美元。


2
我托管自己的服务器,具有出色的正常运行时间,并可以上传和下载多达80meg的服务器。您不需要很多带宽。在大多数情况下,即使下载量仅为10meg,标准的DSL也可以提供足够的上传带宽,即使是相当繁忙的站点也可以提供正常的正常运行时间。我曾经是一台在NOC(网络运营中心)中具有服务器的Web主机,但是却使用我的家庭DSL(当时为商业)进行机器人操作和外部监控。十多年来,所有这些都运行良好,并且100%的正常运行时间。当然,这是由我作为网络工程师进行设置的。;-) DSL可以。
closetnoc

1
你一定不能住在我做的地方。我的电力公司只有95%的正常运行时间,而我的ISP却好一些。
斯蒂芬·奥斯特米勒

1
然后,我的Sprint和Embarq DSL(非商业)运行了8年,在这8年中仅发生了20分钟的停机时间。我现在拥有Centurylink,每年只能进行几次几次(3或4次)停机维护,以进行定期维护。否则,连接性相当不错,我没有任何抱怨。当然,情况并非总是如此。这取决于您的携带者和您的住所。我住在山上。无法超越正常运行时间考虑。
closetnoc

1
是的-糟糕的载体很烂。但是,在DSL可用的地方,不再存在垄断的问题。您可以随时打电话给其他人。您所需要的只是一条UPS上的线路和一条Redback,这应该无处不在(理论上)。干杯!!
closetnoc

@closetnoc值得庆幸的是您不在澳大利亚区域性城市的边缘。尽管这个地方试图提升自己作为技术中心的位置,但我什至都无法获得ADSL2 + :(
Steve

4

是的,您可以将其托管在自己的服务器上。如果您具有静态IP,则只需像设置服务器一样设置网络即可。有很多事情可以找到。

您不需要域名。域名是针对普通用户的,记住一个名字比起一个IP地址要容易得多。只需考虑您的联系人列表,记住名字比实际电话号码就容易了。
查看域名最简单的方法是作为别名。对于在IP地址上具有多个站点的大型服务器,它还用于区分站点(例如,siteA和B都指向同一个IP,则必须设置相应的服务器以显示站点A或B,具体取决于请求)。

例如:64.15.117.85(不用担心,它只是Google。还是吗?)

我不建议您使用自己的服务器。有很多便宜的服务器/主机。您可能会节省一些钱(但我对此表示怀疑),但是在那儿轻松设置一个新域的难度超过了IMO。大多数托管服务商几乎都是即插即用的,而设置您自己的服务器,适当的防火墙,防病毒,维护更新将需要大量时间和维护。


哇,太好了!因此,域名就是将名称附加到数字上,就像我们在移动电话簿中所做的一样,是吗?
NSPratik '16

您并不是说“根本不需要域名”
。– NSPratik

2
电话簿比喻是正确的。域名更容易,但不是必需的:)
Martijn

实际上,在您自己的服务器上托管比在便宜的托管服务器上花费更多,没有任何节省,因此根本就没有这样做的正当理由。
JamesRyan

@JamesRyan您是否一直在谈论离开计算机的电费?
Stephen Ostermiller

3

我的问题是,我可以在下列条件下建立网站并将其在全球范围内公开:

与其在托管服务提供商(如Amazon)上托管网站,不如将其托管在我自己的服务器上。无论带宽,性能还是正常运行时间。

是。

我不要域名。无论有人使用我的公共IP访问我的网站,例如123.456.789.0

您不需要域名即可托管可公开访问的网站。

其他答案更加详细时,最简单的配置是下载Web服务器(例如Windows的Apache),然后在要用于托管站点的计算机上进行设置。我建议使用32位版本以获得最大的兼容性。

解压缩文件并将其复制到C:\ Apache24。

在Apache安装目录中的“ conf”文件夹下,还有一个需要编辑的配置文件“ http.conf”。取消标记为“ ServerName”的行的注释(删除#)并保存更改。请注意,您稍后可能需要或需要进行其他更改,但是现在应该这样做。

假设您按照Windows上参考版本的建议将安装放置在C:\ Apache24中,那么从技术上来说,您现在已经具有运行的Web服务器,并且可以通过双击Apache“ bin”目录中的“ httpd.exe”来启动它。您应该能够看到“它有效!” 如果在浏览器ex中键入服务器的本地IP。192.0.0.100。

如果您使用Linux,则可能已经安装了Apache,因此需要采取其他步骤。

验证Apache正常运行后,请在路由器上使用端口转发(假设您有一个)将端口80请求定向到运行Apache的计算机。

如果一切顺利,这就是您所需要的,并且应该可以通过公共IP地址ex从“互联网”中获取Apache。68.69.70.250。

请注意,防火墙和防病毒软件有时可能会干扰您在本地网络之外查看站点。另外,最好通过不在本地网络上的设备进行测试(例如,尝试通过手机浏览器访问您的站点)。长话短说,某些路由器在访问ex站点时遇到问题。68.69.70.250(如果该站点位于您的本地网络上)(请参阅“ NAT发夹”)。


公共ip永远保持不变吗?因为先前对此问题的回答提出了一个问题,即您的IP将来可能会有所不同,并且您将必须根据更改进行更新
。。– NSPratik

否,您的ISP可能会更改您的公共IP。这就是为什么人们喜欢域名。
Anaksunaman

您可能需要阅读这个答案我给了其他地方- superuser.com/questions/778640/...
Anaksunaman

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.