The nodes outside of the lan don't have to connect to you, if you want run a local node/wallet. They only have to know your public ip in order to "allow" your access.
But the nodes you are connecting to have to be public, of course...
Edit: if you want to make your computer public available you have to configure your routers routing tables.
Thanks a lot for the answer! So the two nodes behind different NAT servers have no chance to connect. If I have my PC behind a NAT, and have no access to router to configure it, I have to search for peers running on public machines only...
It looks like people should specify whether whey run public IP or not, when they ask for nodes in nodesharing channel... so there will be less issues.
One more question: lets say I have access to router, so can forward traffic to my PC, but I do not want to forward all the traffic. Which port should I forward, so IOTA wallet can be connected from outside? In other words, which ports IOTA uses? Is it one port or many? TCP or UDP?
Thanks for help. I know if this goes to technical, I'll have to go to Slack...

I did not try IOTA, but with byteball there's no problem to run within a subnet, behind the NAT. The nodes communicate well and have no issue. Maybe I should try IOTA for that too.