如何从外部访问我网络中的任何机器的 Web 服务器

如何从外部访问我网络中的任何机器的 Web 服务器

我有一个类似 username.dyndns.org 的 IP,这是我的路由器的外部 IP。在我的局域网上,我有几台机器(m1、m2、...),每台都运行一个专用的 Web 服务器。是否可以使用以下方式从外部访问每台机器:http://m1.用户名.dyndns.org http://m2.用户名.dyndns.org?您知道我的路由器需要为 NAT 配置什么吗?此外,Apache 中是否有特殊指令可以执行此操作?非常感谢,问候,Luc

答案1

为了得到你想要的东西,你需要做以下事情:

  1. 设置 dyndns 来创建通配符 (*)别名记录为您的域名。我相信这需要他们的专业版。这将导致 dyndns 解析anything.用户名.dyndns.org到路由器的公共 IP。由于我的 Comcast IP 很少改变,因此我不使用 dyndns,而是直接通过我的域名注册商 (godaddy) 编辑 DNS 条目,购买域名后即可免费使用。

  2. 设置路由器,将所有端口 80 流量转发到运行 Apache 的单个计算机/VM。这是定义所有虚拟主机的地方。在每个虚拟主机部分中,设置代理到处理该子域的实际机器

答案2

是的,这是可能的。只需在路由器上的 NAT 表中添加一个规则集,该规则集指向使用端口 80 的 Web 服务器的 IP。路由器上还有一个部分,您可以在其中定义 dyndns 重定向以每 30 分钟刷新一次 IP。

答案3

Syuuske 拥有联网权。

为了使许多域名在一个 IP 地址上应答,您需要为其他机器设置代理。

如果您要为此使用 apache,请为您希望 apache 回答的每个域创建一个基于名称的虚拟主机,并使用 mod_proxy 将请求转发到正确的机器。

http://httpd.apache.org/docs/2.1/vhosts/name-based.html

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

美国的一些住宅托管公司(suddenlink 和 time warner)会阻止端口 80 上的入站流量,因此如果您无法在 80 上正常工作,请尝试其他端口。

祝你好运。

相关内容