Let's say I have PC1 with a server on port 1234.
PC1 use upnp to open port 1234 on router.
PC2 connects to PC1 from wan and the connection succeeds.
PC3 connects to PC1 from lan using the external or internal router address and the connection fails.
How can I make miniupnpd set this rules so that PC3 can connect from lan using the router's address?
When PC1 uses UPnP to create a redirection, the router will just redirect traffic coming from the WAN port; traffic from the LAN will not enter the router using the WAN port, even if you use the external IP address. You need to use "NAT reflection" for that, and it does not work for UPnP, you will have to configure it manually.
Indeed if I configure it manually it works. The problem is that server sometimes is hosted on PC1, sometimes on PC3. So manual/static configuration is not handy. I'd like to use upnp to set NAT reflection.
I don't understand. PC1 is the server, and PC3 is the client, that is written in your first post und in the last one you wrote, that PC3 ist sometimes the server too? So, which one is it?