配置我自己的 Web 服务器和路由器端口转发

配置我自己的 Web 服务器和路由器端口转发

我刚刚从我的 ISP 收到静态 IP 地址,并且我正在尝试在安装了 Ubuntu 的家用笔记本电脑上设置小型实验服务器。

我已经设置 Ubuntu 来使用内部静态 IP 地址192.168.1.11

Ubuntu 静态 IP 配置

我已从路由器转发端口号,以将端口上的所有请求重定向80192.168.1.11

下面是我的路由器(D-Link DSL-2750U) 配置:

路由器配置

117.218.XXX.XXX我已经在 Ubuntu 机器的 K 端口上启动了小型 Java 网络服务器。但我无法使用我的 ISP 提供的静态 IP 从外部网络访问网络服务器192.168.1.11。我遗漏了什么吗?


更新:根据 Giacomo1968 的建议,我已将路由器的远程 IP 地址更新为公共 IP 地址117.218.XXX.XXX

完成上述配置后,我实际上可以通过浏览器访问我的服务器。但浏览器打开的是路由器配置页面,而不是将请求重定向到 Ubuntu 框。所以现在我更改了 D link 路由器的用户访问控制的默认端口。

现在请求超时了。以下是 curl 的输出

curl http://117.218.XXX.XXX
curl: (7) couldn't connect to host

因此我尝试使用禁用 Ubuntu 上的防火墙,"sudo ufw disable"但问题仍然存在。

我不确定 Dlink 上是否需要进行配置更改,下面是 Dlink 防火墙的配置页面

在此处输入图片描述

有人可以帮我吗?

答案1

根据您显示的屏幕截图,您在 WAN 连接上奇怪地设置了端口转发,如下所示:

  • 外部端口开始/结束:80/80
  • 协议:TCP
  • 内部端口开始/结束:80/80
  • 服务器的IP地址:192.168.1.11
  • 日程安排规则:总是
  • 远程 IP:192.168.1.11

您设置的方式基本上告诉路由器将所有流量从192.168.1.11一个端口路由80192.168.1.11另一个端口80,这毫无意义。“远程 IP:”应设置为您的外部 IP 地址,117.218.XXX.XXX如下所示:

  • 远程 IP: 117.218.XXX.XXX

这样就告诉路由器将所有流量从117.218.XXX.XXX端口路由80192.168.1.11端口80

也就是说,如果路由器本身使用端口80作为 D-Link 管理页面,那么您需要查看是否可以更改管理页面使用的端口。否则,您使用该规则集所做的一切就是将您的 D-Link 管理页面暴露给可以访问该页面的任何人/任何事物117.218.XXX.XXX。至于如何做到这一点?每个路由器都有不同的处理方式,有些路由器根本不向最终用户提供该选项,因为 ISP 通常不希望最终用户轻松地从其 ISP 提供的 Internet 连接上运行 Web 服务器。

如果您无法将 D-Link 管理页面端口更改为端口以外的其他端口,80那么下一个最好的办法就是将您的 Web 服务器端口更改为其他端口,例如80008080。当然,您现在需要调整端口转发规则以匹配新端口,但这可能是此问题的最佳/最简单的解决方案。

答案2

192.168.1.11是您的局域网(LAN)私有静态 IP 地址,而不是您的公共(外部)IP 地址。

你可以通过执行以下命令找到你的公共 IP 地址这个谷歌搜索

更新,每评论

无法通过外部 IP 地址进行连接有多种可能的解释:

  1. Ubuntu 服务器上的防火墙
  2. D-Link路由器上的防火墙
  3. ISP 已阻止出站端口 80
  4. D-Link 路由器的端口转发配置未正确设置

可能的解决方案

1. Ubuntu 服务器上的防火墙

关闭内置的 Ubuntu 防火墙ufw

sudo ufw disable

如果ufw问题似乎不是由此引起的,则可能是 netfilter 规则阻止了您的出站连接成功。可以使用以下命令找到出站规则:

iptables -nvL OUTPUT

2. D-Link 路由器上的防火墙

您需要查阅路由器文档来了解其工作原理。

3. ISP 已阻止出站端口 80

请联系您的互联网服务提供商,查看是否发生这种情况。

4. D-Link 路由器的端口转发配置未正确设置

与您的路由器相匹配的指南可以帮助您配置端口转发:http://portforward.com/english/routers/port_forwarding/Dlink/DSL-2750U/Apache.htm

相关内容