1. Introduction
For many Ubuntu users, managing ports is a crucial aspect of maintaining security and network performance. Checking open ports is essential for preventing attacks, especially when running services or communicating over a network. Additionally, port inspection can help with troubleshooting and optimizing network configurations.
In this article, we will provide a detailed guide on how to check ports on Ubuntu, including step-by-step instructions using specific commands. This information is useful for both beginners and intermediate users.
2. What Are Ports?
Port numbers serve as “gateways” that allow computers to send data to specific services or processes during communication. Network communication primarily relies on two protocols: TCP and UDP. TCP ensures data reliability by establishing a connection before transmitting data, making it a “connection-oriented protocol.” On the other hand, UDP does not establish a connection, allowing for faster data transmission, making it a “connectionless protocol.”
Differences Between TCP and UDP
- TCP (Transmission Control Protocol): A protocol that provides reliable communication, ensuring data is delivered accurately. It is commonly used for web servers (HTTP/HTTPS) and SSH connections.
- UDP (User Datagram Protocol): Unlike TCP, UDP does not guarantee reliability but allows for low-latency data transmission. It is often used for real-time applications such as streaming and VoIP.
Understanding port numbers is essential for managing network security and performance effectively.

3. Common Commands to Check Ports in Ubuntu
There are various commands available to check which ports are currently open on Ubuntu. Below are some commonly used commands.
1. netstat Command
The netstat
command is a powerful tool for displaying network connections, routing tables, and interface statistics. You can check listening ports using the following command:
sudo netstat -lntu
-l
: Show only listening ports-n
: Display IP addresses and port numbers in numeric format-t
: Display TCP ports-u
: Display UDP ports
2. ss Command
The ss
command is a more efficient alternative to netstat
and can quickly display listening ports. Use the following command:
ss -lntu
ss
is considered superior to netstat
due to its ability to retrieve network socket information faster.
3. lsof Command
The lsof
command lists open files, including processes using network ports. You can check port usage with:
sudo lsof -i
4. nmap Command
The nmap
command is a well-known network security scanning tool that helps identify open ports and services. To scan all ports on the local host, use:
sudo nmap -n -PN -sT -sU -p- localhost
4. Opening and Closing Ports
Managing open and closed ports is essential for securing an Ubuntu system. Ubuntu provides a simple firewall tool called ufw
(Uncomplicated Firewall) to help manage ports.
Opening Ports with ufw
To open port 80 for HTTP traffic, use the following command:
sudo ufw allow 80
Similarly, to open port 22 for SSH access:
sudo ufw allow 22
Closing Ports with ufw
To close an open port, use the following command:
sudo ufw delete allow 80
This will remove the rule that allows traffic through port 80.
5. Practical Example: Checking a Specific Port
In this section, we will go through a practical example of checking a specific port. For instance, to check if the SSH service is listening on port 22, you can use the netstat
or ss
command as follows:
ss -lnt | grep :22
You can also verify the port using the lsof
command:
sudo lsof -i :22
The output should confirm that the SSH service is actively listening on port 22.

6. Common Issues and Solutions
When checking or managing ports, you may encounter some common issues. Below are some frequent problems and their possible solutions.
Port is Not Open
If a port is not open, the first step is to check whether the firewall settings are correctly configured. You can verify the status of ufw
by running:
sudo ufw status
If the firewall is not blocking the port, check whether the service itself is running properly. For example, to confirm if SSH is active, use the following command:
sudo systemctl status ssh
Service is Running but Port is Not Listening
In some cases, a service may be running, but the port is not actively listening. To troubleshoot this issue, restart the service and check the logs. For example, to restart the SSH service, use:
sudo systemctl restart ssh
Then check the logs for any errors:
sudo journalctl -u ssh --no-pager | tail -20
Firewall is Blocking the Port
If the firewall is blocking a required port, add a rule to allow traffic. For example, to allow port 8080, run:
sudo ufw allow 8080
To apply the changes, reload ufw
:
sudo ufw reload
7. Conclusion
In this article, we explored essential commands and methods for checking open ports on Ubuntu. Monitoring and managing ports is a crucial aspect of maintaining network security and system stability. Properly managing listening ports helps reduce vulnerabilities and protect your system from unauthorized access.
By following the steps outlined in this guide, you can efficiently inspect ports, troubleshoot connectivity issues, and enhance your Ubuntu system’s security.