RouterOS做内网端口映射
发布于2023-10-17 15:38 阅读588次 端口映射的功能主要就是实现互联网可以访问当前映射的电脑,想要实现端口映射的方式也有很多,用ros实现端口映射就是其中的一种方式。这里我们主要说说用RouterOS做内网端口映射,并提供自动脚本。也可以设计计划任务定时或路由开机重启后自动执行脚本。
以下是脚本代码,代码内已做判断,如果目标映射端口已经存在,则自动获取pppoe-out1现有ip地址(为了做回流,故没有使用in interface),如果指定映射端口不存在则自动获取出口ip后创建一个新的映射规则。
```
#内网端口映射
:local inport "pppoe-out1"
:local dstport 3000
:local toport 3000
:local tohost "192.168.0.88"
:local existsed 0
:set existsed [:len [/ip firewall nat find dst-port=dstport]]
:if (existsed>0) do={
/ip firewall nat set [find dst-port=/ipfirewallnatset[finddst−port=dstport] chain=dstnat dst-address=[/ip address get [/ip address find interface=inportinport] address] dst-port=inport]address]dst−port=dstport protocol=tcp action=dst-nat to-addresses=tohost to-ports=tohostto−ports=toport
} else={
/ip firewall nat add chain=dstnat dst-address=[/ip address get [/ip address find interface=inport] address] dst-port=inport]address]dst−port=dstport protocol=tcp action=dst-nat to-addresses=tohost to-ports=tohostto−ports=toport
}
```