我正在尝试在 mikrotik 上打开一个端口。这是我所做的:
我去 IP-防火墙-NAT
添新
-在一般部分,我设置:链:dstnat,协议:6(TCP),目标端口:5252
- 在操作部分,我设置:操作:dst-nat,目标地址:192.168.1.236,目标端口:5252
我保存了配置。
但当我测试端口时,显示端口已关闭。我做错了什么?我还应该做什么?谢谢!
答案1
首先,DNAT 规则仅执行地址重写 - 您还需要筛选允许数据包转发的规则。IP > Firewall > Filter
在forward
链中添加一条。
家用路由器中的“端口转发”通常将两个规则合并为一个配置,但在本质上它们是两个独立的东西,并且 RouterOS 也将它们分开(非常类似于 Linux 上的 iptables)。
“转发”过滤在 DNAT 之后(但在 SNAT 之前)进行检查,因此,如果您为每个转发端口添加单独的规则,则过滤规则应该检查新的目标地址和端口,例如:
dst-address=192.168.236.1 protocol=tcp dst-port=5252 action=accept
。或者,您可以添加一个 catch-all 规则,通过检查 conntrack 自动允许所有已经匹配 DNAT 规则的内容,例如:
connection-nat-state=dstnat action=accept
其次,查看规则计数器以确保规则确实匹配;可能是您的 ISP(或沿途的其他东西)首先阻止了入站数据包到达您的路由器。如果需要,请在规则上启用日志记录,甚至添加一些额外的,如果您对数据包到达有任何疑问,action=log
请使用数据包捕获工具( )。/tool/sniffer/quick
最后,外部测试无法真正区分“被路由器拒绝”和“被内部主机拒绝”,因为内部主机借用了路由器的 IP 地址,因此从外部看,它们看起来是一样的。也就是说,即使您的端口转发规则都很好,服务器本身也需要接受连接——它需要有一些东西监听该端口和它的防火墙规则需要在输入时接受它 - 以使端口显示为“打开”。
答案2
你所做的应该有效。
因此下一步就是排除故障以找出它不起作用的原因。
如果您有笔记本电脑,请将您的 WiFi 与您的移动热点连接起来,以将自己置于网络之外。
假设你使用的是 Windows,下载文件。保存后,打开命令提示符并导航到保存文件的位置。
运行 paping 并 ping 到 WAN IP 和端口:例如paping 123.45.67.89 -p 5252
Paping 现在将每秒测试一次连接。要么超时(显示红色文本),要么 ping 成功(显示绿色文本)。
如果是绿色,则一切正常。
在 paping 运行时,转到 NATRule 统计页面,并确保在图表中看到峰值。如果看到峰值,则 mikrotik 端设置正确。如果没有看到峰值,则 NAT 规则甚至没有达到。
如果 NAT 规则有效,请确保您连接的服务器没有阻止连接或服务已关闭。还要仔细检查 IP 地址。
如果 NAT 规则不起作用,请确保您是从外部进行测试,并且内部路由和防火墙规则没有阻止它。此外,如果您确实在内部,则可能需要添加 mascerade 规则。