Even though it works fine, it only works if I don't put any source port on the traffic rule configuration. For example, if I put the source port as 22 (the default SSH port), I will not be able to access my Linux server from the internet using its IPV6 address. In my mind it doesn't make sense, I don't think there'll be any negative consequence of leaving it as it is now since there's only one destination port for it. But why does it work that way? Shouldn't it work fine when I put the source port as 22 (I have actually spent a few hours figuring out why it wasn't working)?
In a port forward rule, the external port is the “destination” port that the traffic arrives at the router on. The internal port is the port on the LAN device that the traffic is forwarded to. Sometimes they match, but don’t need to. For example, you could forward external port 2222 to internal port 22.
Since IPv6 doesn’t need NAT, you’re just allowing the forwarded traffic through the firewall directly without any port remapping.
There are subtle differences in the fields of a traffic rule and a port forward (redirect) rule.
Thanks, I didn't know they had different behaviors...
But then is there any situation I should specify a source port for traffic rules? Since they're randomly arriving on the router, I'll always (or at least most of the time) have to leave it as "any", right?