I have a basic power forwarding setup that forwards all queries to my public IP address (assigned by ISP via PPPoE) and port 7777 to my local machine. It works just fine when any external source sends a request.
21:50:25.478929 IP 211.33.244.88.38721 > MY.PUBLIC.IP.HERE.7777: UDP, length 11
21:50:25.479079 IP 211.33.244.88.38721 > 192.168.1.2.7777: UDP, length 11
21:50:25.479097 IP 211.33.244.88.38721 > 192.168.1.2.7777: UDP, length 11
21:50:25.479109 ethertype IPv4, IP 211.33.244.88.38721 > 192.168.1.2.7777: UDP, length 11
But the issue is that for some reason the forwarding does not work when send from my own local machine to my public IP:
21:49:38.325645 IP 192.168.1.2.56782 > MY.PUBLIC.IP.HERE.7777: UDP, length 10
21:49:38.325645 IP 192.168.1.2.56782 > MY.PUBLIC.IP.HERE.7777: UDP, length 10
21:49:38.326009 IP 192.168.1.1.56782 > 192.168.1.2.7777: UDP, length 10
21:49:38.326032 IP 192.168.1.1.56782 > 192.168.1.2.7777: UDP, length 10
21:49:38.326046 ethertype IPv4, IP 192.168.1.1.56782 > 192.168.1.2.7777: UDP, length 10
In this case 192.168.1.1 is the OpenWRT router and 192.168.1.2 is my machine. The tcpdump above literally shows forwarding but nothing arrives. I dont think this is an ISP issue as you can see the data arrives so it is being forwarded by ISP properly. This also only applies to UDP data, TCP is being forwarded just fine
If the traffic is indeed forwarded correctly as suggested by tcpdump, but you don't see it on the target machine, then possibly that machine's firewall is dropping the traffic.