RouterOS 下 UPnP 不能正常工作
-
RouterOS 不支持定时释放 UPnP 映射,有以下报错:
[725] OnlyPermanentLeasesSupported -
超时时间可能过短。
upnp.forward函数参数中有个duration相关的,删除即可
https://github.com/MikeWang000000/Natter/blob/master/natter.py#L1722
只不过创建的upnp规则就需要手动去删了,好像在ROS7.9之后就删不了了,建议通过upnp接口来删除,还有就是重新拨号外网IP变了之后不会自动修改upnp规则。。
https://tty228.github.io/2022/06/09/%E3%80%90RouterOS(ROS)%E3%80%91UPNP%E8%AE%BE%E7%BD%AE-%E8%87%AA%E5%8A%A8%E8%80%81%E5%8C%96%E5%8F%8A%E9%87%8D%E6%8B%A8%E5%90%8E%E4%BF%AE%E6%94%B9IP/
upnp.forward函数参数中有个duration相关的,删除即可
此处说明:不是最佳解决方案。请等待 后续版本中的解决方案。2.1.2
家里ROS主路由,刚好遇到这个问题了,请问有什么更好的解决方案吗? 如果是修改duration来应急,是应该将duration改为0吗
补充更新:
将duration更新为0后可以正常打洞,只是upnp规则没办法手动删除
upnp.forward函数参数中有个duration相关的,删除即可
此处说明:不是最佳解决方案。请等待
2.1.2版本中的解决方案。
想问问有什么进展吗?
我这比较粗糙的改了一个基于RouterOS的restful api操作NAT的版本~能凑合用下 https://github.com/thinkearn/Natter
考虑到 RouterOS 只支持永久的 UPnP 映射,但有部分 UPnP 实现却是禁止永久的 UPnP 映射,这个问题需要的修改仍需更全面的测试。因此延期至 2.2 版本之后。