Natter icon indicating copy to clipboard operation
Natter copied to clipboard

RouterOS 下 UPnP 不能正常工作

Open MikeWang000000 opened this issue 1 year ago • 6 comments

  1. RouterOS 不支持定时释放 UPnP 映射,有以下报错:

    [725] OnlyPermanentLeasesSupported
    
  2. 超时时间可能过短。

MikeWang000000 avatar May 27 '24 17:05 MikeWang000000

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/

Droid-MAX avatar Jun 01 '24 21:06 Droid-MAX

upnp.forward函数参数中有个duration相关的,删除即可

此处说明:不是最佳解决方案。请等待 2.1.2 后续版本中的解决方案。

MikeWang000000 avatar Jun 02 '24 16:06 MikeWang000000

家里ROS主路由,刚好遇到这个问题了,请问有什么更好的解决方案吗? 如果是修改duration来应急,是应该将duration改为0吗


补充更新:

将duration更新为0后可以正常打洞,只是upnp规则没办法手动删除

jdjingdian avatar Aug 07 '24 03:08 jdjingdian

upnp.forward函数参数中有个duration相关的,删除即可

此处说明:不是最佳解决方案。请等待 2.1.2 版本中的解决方案。

想问问有什么进展吗?

KYLN24 avatar Nov 30 '24 14:11 KYLN24

我这比较粗糙的改了一个基于RouterOS的restful api操作NAT的版本~能凑合用下 https://github.com/thinkearn/Natter

thinkearn avatar Sep 07 '25 13:09 thinkearn

考虑到 RouterOS 只支持永久的 UPnP 映射,但有部分 UPnP 实现却是禁止永久的 UPnP 映射,这个问题需要的修改仍需更全面的测试。因此延期至 2.2 版本之后。

MikeWang000000 avatar Oct 08 '25 10:10 MikeWang000000