如何将域名映射到局域网PC

如何将域名映射到局域网PC

我在 godaddy 注册了一个域名,想把网站托管在我的个人电脑上。我的电脑已经安装了 LAMP(linux+apache+mysql+php),并连接到路由器,路由器连接互联网。
路由器的 WAN ip 地址是 24.170.225.222,
LAN 中的 PC ip 地址是 192.168.0.22,并通过路由器访问互联网。

我尝试将域名映射到WAN中的路由器IP地址,然后在浏览器中输入url,打开路由器管理系统的登录网页。

如何将我的域名链接到我个人电脑上的 apache 服务器?
我需要在输入 url 时打开 apache 服务器中的默认 html。

答案1

您需要在路由器上创建端口转发,并将 HTTP 的 TCP 端口 80 和 HTTPS 的 TCP 端口 443 转发到 PC 的内部 IP(192.168.0.22)。

然后,您需要在您的域名 DNS 上创建一个 A 记录,以将 www 指向您的公共 IP(24.170.225.222),您可以在 GoDaddy 中执行此操作。

请记住,这些 IP 可能不是静态的,因此如果/当它们发生变化时,它将停止工作。对于您的 PC,您可以在路由器中创建一个预留,对于您的公共 IP,您可能需要向您的 ISP 索取一个静态 IP 地址,有些 ISP 将其作为附加服务提供。如果不可能或太贵,您可以使用 DDNS 服务,但这将是另一个问题的主题...

答案2

感谢@MrLumute 和@Tero Kilkanen 的指点,经过几天的尝试,问题终于得到解决。
总结如下:
环境:

  • web 服务器:Ubuntu 20.04 LTS + apache2 在 Oracle VM 虚拟盒中运行
  • 在 Windows10 PC 上运行的 Oracle VM 虚拟盒
  • windows10 PC 连接到 cox 路由器,然后连接到互联网

目的:在 Oracle VM 虚拟盒中托管一个可从互联网访问的公共网站

解决方案:
1. 从互联网域名注册商(例如 godaddy、bluehost)注册一个域名
2. 创建 A 记录以将您的域名链接到路由器的公共 IP。
这需要在您注册后在注册商的域管理系统中完成。
3. 启用路由器的 http/https 端口并设置从路由器公共 IP 到 PC 的 LAN IP 的端口转发
在我的 cox 路由器中,我必须首先启用路由器的 http 和 https 端口,
然后通过路由器的“端口转发”配置将这两个端口转发到 PC 的 LAN IP。
4. 在 Windows 防火墙中添加一条规则以允许 http 端口 8080 的入站访问
5. 将 http/https 端口从 PC LAN IP 转发到 VM IP
在 Windows 10 中,可以运行以下命令进行端口转发:

netsh interface portproxy add v4tov4 listenaddress=192.168.0.133 listenport=8080 connectaddress=192.168.0.122 connectport=80      
listenaddress is the PC IP    
connectaddress is the VM IP

相关内容