Yes, it appears you've misunderstood the concepts involved. You've at minimum confused two meanings of a port being "open". (Being open in a firewall like iptables means something different than what
netstat -l tells you). You are also likely confused (or, possibly, run into one of Rumsfeld's infamous things we don't know that we don't know) with how traffic is passed between a virtual machine, it's host machine, and the other machines on the network.
Ideally, someone will add an answer trying to explain it. Weekends are, last I looked, pretty low-traffic for the site, so it's not surprising your question has remained unanswered.
There is also, for anyone answering, a concern when seeing a question like that: explaining all of that is potentially a lot of explanation. It takes a good while to write a thorough answer trying to resolve all the confusion. Someone with five or ten minutes to kill isn't going to have time. I'd encourage you to edit in at least some hint of how much you know about IP networking.