emule is listening on two ports, starting with the 0.47c version it was randomly selected at the first start (previous versions used ports 4662 and 4672 by default), and you can see in the Options menu (see picture below) What Port emule has chosen. You can also modify those ports when you need them, and emule can work on any port.
Two ports, A is the TCP port, B is the UDP port. Please note that the actual port is different on your emule, so check the Options dialog box without copying the port number in the example image. You now need to open those ports on the address map or port redirection settings on the router or firewall. emule will probably find several fields to fill out, and the following table should be helpful:
Now the second port:
After adding these rules to the firewall/router, emule should be able to receive a visiting connection and get a "high ID" status. You can click on the "Test port" button to confirm that everything is working as expected. If you still have a problem or don't understand any part of this guide, you may want to try asking for help in the forum.
Optional: Web server (Web interface)
If you plan to use a Web server (Web interface) to control your emule from any computer on the Internet, you must also add a rule to the port. This is completely optional and unnecessary for emule to run smoothly. You can find more information about the Web server (Web interface) here. Therefore, if you do not intend to use the Web server (Web interface), please ignore this section. Conversely, the following table can open the default port for the Web server (Web interface):
Senior users need extra attention:
In rare cases, you need to open a different port: If the router/firewall does not support stateful UDP connections (you can receive a P response from the emitted UDP), you must open a port specifically to receive UDP responses from the server. This is not necessary in most cases, because almost all routers and firewalls support UDP response packets. Even in that rare case, it is usually not noticed, except that the source of scarce files finds a little slower and global server search is not available. To resolve, you need to first select a fixed port and insert the "serverudpport=[port number" in the "EMule" section of the Preferences.ini file, and then open the port for all incoming UDP traffic on the router/firewall.