我使用路由器通过 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)
这种类型的重定向可以实现,但通常是通过反向代理(接收请求的主机,如上所述)。