Hello,
I’m using a RB951G-2HnD v5.26 device with a Transmission bittorrent client, Transmission is using miniupnpc and I read threads on this forum and Transmission and miniupnpc’s tickets about issues in past with RouterOS.
This seems to not be the case anymore as Transmission and miniupnpc command line client are able to create dynamic rules. However even if the web interface shows the TCP dynamic rules the port is actually closed from the outside.
I check the port using both Transmission’s builtin checker and canyouseeme.org service and infobyip.com’s web services.
If I create a static TCP rule with the same exact values of the dynamic rule then the port correctly results open.
The only difference I can see is the destination address field that in the dynamic rule is “0.0.0.0” while in the manually added rule is just skipped.
Is the upnp client wrong in using an external address 0.0.0.0 or is there something in my config that is preventing it from working as expected?
Also I see the dynamic rules listed in web interface but not listed by ip firewall nat print, is this expected? How can I list the dynamically created rules from command line?
Here’s the output of command line before and after starting the UPnP client:
~> ssh router ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade out-interface=pppoe-out1
1 X chain=dstnat action=dst-nat to-addresses=192.168.0.188 to-ports=7999 protocol=tcp dst-port=7999
~> # starting the client here
~> ssh router ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade out-interface=pppoe-out1
1 X chain=dstnat action=dst-nat to-addresses=192.168.0.188 to-ports=7999
protocol=tcp dst-port=7999
and here’s the web interface after starting the client, before the dynamic rules aren’t there:
![]()
Notice that I disabled the static rule to check if the dynamic ones worked, deleting it produces the same effect.
Here’s my /ip firewall filter content:
> ssh router ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; default configuration
chain=input action=accept protocol=icmp
1 ;;; default configuration
chain=input action=accept connection-state=established
2 ;;; default configuration
chain=input action=accept connection-state=related
3 ;;; default configuration
chain=input action=drop in-interface=ether1-gateway
4 ;;; default configuration
chain=forward action=accept connection-state=established
5 ;;; default configuration
chain=forward action=accept connection-state=related
6 ;;; default configuration
chain=forward action=drop connection-state=invalid
Any hint appreciated