将 HTTP 请求转发到路由器后面的本地 Apache 服务器?

将 HTTP 请求转发到路由器后面的本地 Apache 服务器?

我在 Ubuntu 上运行着一个 Apache 服务器,默认情况下它使用基于名称的虚拟主机。出于某种原因,我必须让我的本地服务器公开可访问,但问题是我使用 WLAN 路由器运行互联网,而我的 WLAN 路由器只允许 IP 转发到本地 IP 地址(而不是基于名称的主机),所以我无法将 HTTP 请求转发到我的外部 IP 地址,例如 localhost,但我可以转发到 192.168.xx

所以我的问题是,我是否可以让我的 Apache 服务器在某个 192.168.xx 地址上运行,以便路由器可以将 HTTP 请求转发到我的本地服务器。

抱歉,我的语言比较业余,我对网络和其他东西还很陌生。

提前致谢!

编辑

ip route输出:

default via 192.168.0.1 dev wlan0 proto static 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.101 metric 9

答案1

可以。Apache 服务器使用网卡的 IP 地址来表示自己。如果您将 Apache 服务器配置为监听端口 80。此外,要执行端口转发,您必须具有:

  • 修复路由器 WAN 端的公共 IP 地址或非修复公共地址的 ddns 记录
  • 修复服务器上的本地地址,又名 192.168.xx
  • 在路由器上执行端口 fw 从 wan 到 lan 以实现端口 80 上的流量
  • 检查防火墙,必须允许流量到端口 80

如果你有域名,你可以在 DNS 服务器上创建 A 记录

yourdomain.com      A   your_public_ip_address

当有人希望看到你的网站流量流会这样进行:

  • 在浏览器中输入yourdomain.com
  • pc 请求 dns 将逻辑名称解析为 ip 地址
  • pc 向 ip 地址发送 http 请求
  • 请求通过互联网访问路由器上的 wan 接口
  • 路由器根据您的规则选择流量并转发到本地 IP
  • 服务器在网卡上收到 http 请求
  • 服务器通过相同路由向请求者发送应答

相关内容