是否可以从NAT后面托管Web服务器


21

我的电脑在具有公共IP地址的NAT路由器后面。如果我想托管一个网站,那么我相信我需要一个域名,我可以从某个站点购买一个域名,该域名将承诺解决该域名的所有DNS请求并发送我的NAT路由器的IP地址(假设我不想在他们的服务器上托管我的域名)。现在,我想在我的计算机上托管一个Web服务器。

  1. 应该对NAT路由器的配置进行哪些更改,以将example.com的所有HTTP请求转发到内部网络中的PC。
  2. 以上策略正确吗?
  3. 常用吗?

Answers:


12

如您所述,将服务器托管在NAT之后是可行的。
参阅ServersBehindNAT上的Ubuntu帮助页面以了解基础知识。

更多参考,

  1. 在NAT后面托管Apache服务器
  2. 在NAT后面设置服务器,该服务器
    使用NAT Buffalo AirStation系列路由器和Linksys路由器示例
  3. Windows XP Internet连接共享方法。如果您有Windows计算机执行NAT
  4. [如果使用XP,则还可以使用IIS 6 5(1个虚拟主机支持),方法是转到控制面板>添加和删除程序>添加Windows组件> Internet信息服务。

这是假设您知道如何托管Web服务器并且需要有关NAT的想法。



1

另一种选择可能是类似homelinux的东西,其中您的动态IP地址可以映射到statix .homelinux。网址

除了“ homelinux”以外,还有其他选择

http://www.dyndns.com/


1
  1. 查看portforward.com。他们对此有详细的指导,基本思想是您需要设置路由器以将端口80上的TCP请求转发到计算机的IP地址。这带来了另一件事:您需要将计算机设置为具有静态IP。如果您的路由器上运行着DHCP服务器(在97%的情况下就是这种情况),请确保分配一个远高于或低于它的DHCP服务器。带有“静态LAN IP地址”的google可能会提出有关如何在各种操作系统上进行设置的说明。
  2. 只要您的ISP不会阻止端口80上的传入连接,它将起作用。有些出于安全原因这样做。
  3. 也许。这就是我现在正在使用ftp,http,ssh,vnc,xmpp和其他一些东西所做的...

您还需要在计算机上运行Web服务器。只需获取Apache,它就可以在几乎所有平台上运行,并且是大多数站点使用的平台。


1

在检查了所有这些答案并链接了how-to之后,我认为它们都涉及大型程序(部分用于其他目的)以及配置文件和内容的精心设置,因此我决定编写自己的解决方案。

https://github.com/rofl0r/nat-tunnel

这是一个250行的python脚本,您可以直接从git checkout运行它。

示例:您有一个HTTP服务器正在端口80上侦听本地计算机。您想使其在端口7000上的云服务器/ VPS / etc的公用IP上可用。我们使用云服务器上的端口8000作为控制通道。

使用像

服务器:

natsrv.py --mode server --secret s3cretP4ss --public 0.0.0.0:7000 --admin 0.0.0.0:8000

客户:

natsrv.py --mode client --secret s3cretP4ss --local localhost:80 --admin example.com:8000

0
  1. 将端口80上的路由器的TCP转发端口流量转发到PC上的PC到port_whatever_you_are_running_your_webserver

  2. 您不需要域名即可允许其他人访问您的网络服务器,公共IP就足够了。为您的公共IP分配一个域名更加方便。否则您的计划就可以了。

  3. 您的路由器只是公众和服务器之间的“防火墙”。这样的设置很常见。



0

1.)您需要将端口80转发到端口80上的内部IP地址

2.)可能。如果您的ISP提供了静态IP,那么您都可以使用该策略。如果您没有静态IP,则可能需要使用动态Dns,这是在服务器上运行一个软件的地方,它会不断更新域名的IP地址,通常这是他们分配。但是,您可以在域上设置一个CNAME记录,该记录指向动态dns提供程序提供的记录。

3.)我个人不会说这很普遍,但这也不罕见。


-2

您的策略非常常用,如果您购买了公共IP,那么您的策略就很不错了。

您应该获得XAMPP。XAMMP已预先配置,默认情况下Apache将使用端口80。确保端口80上没有其他进程在运行,否则Apache将无法运行。通常,Skype(如果您使用的是Skype)播放被破坏的运动和猪端口80,则需要从连接设置中将其禁用。

它包含Apache,PHP和Mysql,它将满足您的所有需求。只是不要忘记保护好它

请记住,XAMPP不是生产软件,但它可以满足您托管个人网站/博客的需求。

还有一件事,如果您希望该网站保持24/7全天候运行,则必须将计算机保持在24/7全天候运行。

如果您需要免费域名,可以获取一个co.cc供个人使用,他们每年都会续订该域名。

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.