我在 ISP 提供的调制解调器/路由器后面安装了额外的路由器。此配置是为了解决许多问题而创建的,例如从互联网进入的连接的端口转发,这些连接需要定向到连接到第二个路由器的 Windows 服务器。
布局如下:
- ISP 调制解调器/路由器 192.168.100.1 - 接收传入互联网流量(启用 DHCP),包括点播电视,并将其传递到电视机顶盒和第二个路由器。
- 第二个路由器 192.168.90.1 - 从 ISP 调制解调器/路由器接收互联网流量,配置 192.168.100.1 作为默认网关并且(启用 DHCP)服务所有 WiFi 和以太网 LAN 流量,包括配置为 192.168.90.10 的 Windows 服务器。
我使用基于 MS-SQL 的应用程序,在此服务器和配套台式电脑 (192.168.90.11) 上运行,以便从 LAN 内部和互联网实现数据库同步。LAN PC 与服务器的同步工作正常,外部 (互联网) 同步无法连接到服务器。但外部 PC 可以 ping 已启动并运行 DDNS 域的服务器。
我尝试在服务器防火墙上配置开放端口,但没有成功。禁用防火墙,也没有成功。
在两个路由器之间,我配置了端口转发,如下所示:
- 路由器 1 (192.168.100.1) - 将端口 80、65100、1433、1434 等转发至
- 路由器 2 (192.168.90.1) - 将端口 80、65100、1433、1434 等转发至服务器 (192.168.90.10)
我分离这两个 LAN 的主要目的是将互联网电视和相关硬件与来往的 Windows 和 Android 设备分开。
我是否遗漏了什么,或者有没有更好的方法来解决这个问题?
答案1
一般来说这应该可行。有两种情况:
路由器 1没有有一条通往第二个子网(我假设是 192.168.90.0/24)的路由。
在这种情况下,路由器 1 上的所有端口转发都必须使用路由器 2 的外部的(WAN)IP 地址,即
192.168.100.x
,因为它不知道如何到达内部 IP 地址。路由器 1做有一条通向第二个子网的静态路由。
在这种情况下,路由器 1 上的端口转发可以直接指向您的服务器的 IP 地址,而路由器 2 根本不需要任何端口转发。(但是,路由器 2做需要允许传入连接的防火墙规则。
(我认为第二种方法更直接。)
您没有提到是否测试了各个组件。连接需要相当多的跳数,因此它不是黑白分明的“它有效/它无效”。
来自互联网到 TCP 端口 80 的连接是否到达您的外部路由器?
如果它是锁定的组合调制解调器/路由器,则可能很难或无法测试。(如果您很幸运,它将具有 telnet 访问权限并
tcpdump
已安装。)但请注意,有些互联网服务提供商实际上阻止了某些端口上的传入连接,因为它们有风险(尤其是 MS-SQL严肃的蠕虫)或因为 ISP 希望其商业计划获得更多销售(从而阻止消费者计划中的网站托管)。
外部路由器是否正确地将它们转发到端口转发规则中指定的任何位置?换句话说,路由器 2收到数据包了吗?
如果路由器 2 没有测试这个(没有 telnet/tcpdump),请更改转发规则以指向电脑在 192.168.100.x 网络中,并在该计算机上运行 Wireshark 以确认它正在接收数据包。(然后将规则改回来。)
是否内部的路由器是否正确转发数据包到服务器?
这次,服务器能可以轻松安装 Wireshark 或 tcpdump,因此您只需启动捕获并观察数据包即可。
捕获不受服务器自身防火墙的影响,因此它会显示传入的数据包即使操作系统没有对它们做出反应。(如果发生这种情况,您可以假设服务器的防火墙存在问题。)
服务器有响应吗?
答复会传回来吗?