如何从路由器转发特定端口上的特定 http 请求?

如何从路由器转发特定端口上的特定 http 请求?

我使用路由器通过 NAT 将互联网分发给 3 台电脑。我已将路由器的端口 8008 转发到我的电脑端口 3127。当我在端口 3127 上托管我的网站时,它可在

example.com:8008

。但是,即使它是 http 的默认端口,我也无法在默认域即上看到我的网站http://example.com

我使用 dlink 路由器。

我想在我的路由器中添加类似下面的脚本,该怎么做?

if (http_packet.host == "*example.com*"):   #contains example.com
    forward(port8008)

答案1

但是,尽管 [8008] 是 http 的默认端口,但我无法在默认域名即 http://example.com 上看到我的网站。

端口 80(HTTP)和端口 443(HTTPS)是 HTTP/HTTPS 的唯一标准端口。

如果 8008 是 http 端口,为什么我的网站不可见?

如上所述,8008 不是官方 HTTP 端口。http://example.com在浏览器中输入 与输入 没什么不同http://example.com:80。其他端口(如 81、8008 和 8080)经常被使用,因为它们在视觉上与 80 相似,并且它们本身未被使用(在大多数情况下)。

如果我转发端口 80,我担心其他计算机将无法访问 http 网站。

如果对 HTTP 站点的请求源自您的网络(例如来自本地计算机的浏览器),则不应阻止端口 80 上的大多数通信,即使您正在转发端口 80。

来自您网络之外的请求(即有人试图联系您的网站)将被转发到您将端口 80 转发到的任何主机,但该主机随后可以将请求重定向到其他主机或端口(如果需要)。

if (http_packet.host == "*example.com*"): #contains example.com
    forward(port8008)

这种类型的重定向可以实现,但通常是通过反向代理(接收请求的主机,如上所述)。

相关内容