Es müssen definitiv keinerlei Ports "freigeschaltet" werden, wenn die besagten Anwendungen keine Serverkomponenten, also Bestandteile, welche auf eine eingehende Verbindungsanforderung warten, enthalten.
So ist es beispielsweise nicht erforderlich, den Standardport des HTT-Protokolls (80) zu öffnen, damit man im Internet surfen kann, denn in diesem Falle baut man von sich aus zunächst eine Verbindung zu einem entfernten Host (Webserver) auf, wobei diese Beziehung im Router (der NAT verwendet, um mehrere lokale Adressen auf eine globale Adresse zu multiplexen) zwischengespeichert wird. Da dann (in dem Zeitraum, bis die zwischengespeicherte Beziehung aufgrund eines Timeouts wieder entfernt wird) ganz klar zu erkennen ist, wohin der nun vom Webserver ankommende Datenverkehr wohl hin soll (mit größter Wahrscheinlichkeit zu dem Rechner, welcher in der Beziehung vermerkt ist) funktioniert sowas ohne irgendwelche Einstellungen.
Beinhaltet Software nun aber eine oder mehrere Serverkomponente/n (bspw. besitzt eMule einen solchen Teil, welcher an einem angegebenen Port auf Verbindungen lauscht), so schaut es ja nun so aus, dass zuvor keine Verbindung nach aussen aufgebaut wurde und so auch keinerlei Beziehung zwischen einem lokalen Rechner und einem entfernten Host zwischengespeichert ist, an welcher nun rauszulesen wäre, wo ankommender Traffic von einem entfernten Host landen soll (auf welchem lokalen Rechner). In solchen Fällen muss dann klar definiert werden, welcher Rechner für diesen ankommenden Traffic zuständig ist - das sind dann diese lokaleRechner/Port-Einträge, die man bei Routern so kennt.