我对网络还很陌生,我正在尝试从其私有网络之外访问一台没有公共 IP 的计算机。
网络布局如下:
PC <----> Router <----> Modem
(192.168.0.2) (192.168.0.1 / 192.168.25.11) (192.168.25.1 / <public_ip>)
路由器是 TP-Link TL-WR841N,调制解调器是 PowerBox PACE V5471。
我已经在调制解调器(端口 3750 到 192.168.25.11 端口 3750)和路由器(端口 3750 到 192.168.0.2 端口 1433)中启用了端口转发。
在 192.168.0.2 中,我有一个 MSSQL 服务器监听 1433 - 我可以在本地网络中顺利连接到它。但是,我无法远程连接。
当我尝试通过 telnet 连接到<public_ip>
端口 3750(应该路由到 192.168.0.2 和端口 1433)时,出现错误Connection refused
。
nmap
当我尝试从本地网络内的 PC 查看开放端口时,我得到了以下结果。
调制解调器:
nmap -sT <public_ip> 3750
PORT STATE SERVICE
3750/tcp closed unknown
nmap -sT 192.168.25.1 3750
PORT STATE SERVICE
3750/tcp filtered unknown
路由器:
nmap -sT 192.168.25.11 3750
PORT STATE SERVICE
3750/tcp open unknown
nmap -sT 192.168.0.1 3750
PORT STATE SERVICE
3750/tcp filtered unknown
我在这里遗漏了什么?
一些有用的信息:
- 我正在尝试从运行 Ubuntu 14.04 的 Linux 进行远程连接
- 我在我的电脑防火墙中添加了端口 1433 和 sqlservr.exe 的例外
答案1
你遇到了一些问题。
路由器可以消除 NAT,因为实际上没有理由在您的专用网络中运行 NAT。您可能也不需要防火墙功能。如果您想要两个独立的网络,只需让它在它们之间路由,但它需要知道如何访问互联网,无论是使用静态路由还是通过与调制解调器共享路由协议。除非您设置了这一点,否则路由器只会知道两个直接连接的网络。
调制解调器还需要一个到其他网络的路由,因为它对其他网络一无所知,因为它没有直接连接,无论是使用静态路由还是与路由器共享路由协议。调制解调器还需要能够从内部发夹流量,这些流量将发往内部的公共地址,否则它最终会将其丢弃。