evs*_*vsc 5 router nat port-forwarding
我在 Mikrotik 路由器上设置了端口转发,但路由器操作系统 (v6.39.2)似乎比我习惯的标准现成路由器接口复杂得多。我按照这里的说明进行操作,这些是我在 IP/防火墙/NAT 中输入的设置:
- Chain: dstnat
- Protocol: 6 (tcp)
- Dst Port: 8000
- In. Interface: all Ethernet (for testing purposes)
- Action: dst-nat
- Log: yes (for testing purposes)
- To Addresses: 192.168.1.33
- To Ports: 8000
Run Code Online (Sandbox Code Playgroud)
因为看起来 8000 端口还没有在外网正式开放(等待有人这样做,同时我检查了它是否在yougetsignal.com 上打开)我想至少测试一下我的如果可能,端口转发规则在本地网络内有效。
当我尝试192.168.1.1:8000在 Web 浏览器中访问时,我在 NAT 规则设置的速率图中看到了一些活动。但是网络浏览器仍然只给我一个“无法访问此站点”的响应。
我希望它会将我转发到192.168.1.33:8000. 这应该可能吗?还是我做错了什么?
Mikrotik RouterOS 基于 Linux 内核,继承了大部分网络概念。
因此,我将描述 Mikrotik 路由器中端口转发的设置。我会尽量描述你的问题。
如果想更深入的理解,可以阅读iptables教程。这是非常酷的文档,有详细的解释。
- Chain: dstnat
- Protocol: 6 (tcp)
- Dst Address: <wan-ip>
- Dst Port: 8000
- In. Interface: all Ethernet (for testing purposes)
- Action: dst-nat
- Log: yes (for testing purposes)
- To Addresses: 192.168.1.33
- To Ports: 8000
Run Code Online (Sandbox Code Playgroud)
当数据包从外部(wan 接口)到达时,这种情况是微不足道的。但是,当应该进行端口转发的数据包从 LAN 到达时,就会发生一些有趣的事情。
http://<wan-ip>:8000网页。表单中的 TCP 数据包192.168.1.Z:Y -> <wan-ip>:8000 TCP [SYN]源自 LAN 主机并发送到默认网关(Mikrotik 路由器)。dst-nat规则重写目标地址。执行此操作后,数据包将如下所示192.168.1.Z:Y -> 192.168.1.33:8000 TCP [SYN]192.168.1.33主机。192.168.1.33主机接收以形式的TCP数据包TCP SYN 192.168.1.Z:Y -> 192.168.1.33:8000,创建的形式回复192.168.1.33:8000 -> 192.168.1.Z:Y TCP [SYN-ACK]并将它发送到LAN主机直接。192.168.1.33:8000 -> 192.168.1.Z:Y TCP [SYN-ACK],但它不是主机所期望的!而这个数据包将被丢弃。192.168.1.33主机应将回复发送到 mikrotik 路由器,而不是直接发送到 LAN 主机。为此,您可以src-nat向 Mikrotik添加其他规则。- Chain: srcnat
- Protocol: 6 (tcp)
- Dst Address: 192.168.1.33
- Dst Port: 8000
- Src Address: 192.168.1.0/24
- Action: src-nat
- Log: yes (for testing purposes)
- To Addresses: 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
它使 Mikrotik 重写源自 LAN 的端口转发数据包中的源地址。之后,192.168.1.33主机会将这些数据包视为192.168.1.1:X -> 192.168.1.33:8000 TCP [SYN],并将回复发送给 Mikrotik。mikrotik 将进行反向地址转换,一切都会起作用。
filter/FORWARD链中设置一些规则:- Chain: filter/FORWARD
- Protocol: 6 (tcp)
- Connection state: new
- Dst address: 192.168.1.33
- Dst port: 8000
- Action: accept
- Chain: filter/FORWARD
- Connection state: established,related
- Action: accept
Run Code Online (Sandbox Code Playgroud)
显然,有足够的方法可以改进,但主要概念现在应该很清楚了。
小智 0
dst-nat 规则看起来没问题。您可以从网络内部浏览到 192.168.1.33:8000 吗?如果是,我将使用与生产子网不同的子网配置第二个 LAN 接口,并使用 Mikrotik 作为默认网关进行测试,将笔记本电脑连接到这个新的 LAN 端口。
问候,莱斯利