- How to check whether port 25 is open or blocked?
- 3 Answers 3
- Linux Check If Port Is Blocked by Firewall
- How To Check If a Port Is Blocked by the Firewall
- Method # 1: Using the “telnet” Command
- Method # 2: Using the “nc” Command
- Conclusion
- About the author
- Karim Buzdar
- How to Check if a Port is Blocked by the Firewall in Ubuntu
- Methods to Check if a Port is Blocked by the Firewall
- telnet command to check port is open or blocked
- nc command to check port is open or blocked
- Wrap up
- Check if port is open or closed on a Linux server?
- 8 Answers 8
How to check whether port 25 is open or blocked?
I’m trying to determine if port 25 is available on a server. I tried using nc and telnet to connect, but each of those failed to connect. Is there any other test I can do to find out if there is anything listening on that port?
Well, if nc
3 Answers 3
If you have access to the system and you want to check whether it’s blocked or open, you can use netstat -tuplen | grep 25 to see if the service is on and is listening to the IP address or not.
You can also try to use iptables -nL | grep to see if there is any rule set by your firewall.
If you saw nothing wrong, finally you can do what you have already done by using telnet yourTarget 25 or nc yourTarget 25 , and if you get a message saying that the connection is refused, it might be blocked and filtered by your ISP since most ISPs block the default SMTP port 25. In that case you can change the default port — if you need it — to an alternative.
The other option you have, is to use Nmap ↴
You can use nmap -sT localhost to determine which ports are listening for TCP connections from the network. To check for UDP ports, you should use -sU option.
To check for port 25, you can easily use nmap -p25 localhost .
And if you do not have access to the system, you can use nmap -sS -p25 yourTargetIP .
N.B. Nmap is a super-powerful tool, but you should know how to use it. For instance, sometimes you might be in need of using -Pn option for a pingless scan.
Linux Check If Port Is Blocked by Firewall
We all know that network communication occurs because of the ports and sockets. A port allows you to connect to the desired web server at any time you want while using the Internet. However, there are times that the firewall running on your system blocks certain ports due to security concerns. Therefore, if you ever wish to find out whether your firewall blocks a certain port or not in Linux, then you can follow this guide.
How To Check If a Port Is Blocked by the Firewall
To check if a port is blocked by the firewall or not, we are going to share with you two different methods below:
Method # 1: Using the “telnet” Command
In this method, we will try to use the “telnet” command to access a web server on a specific port number to see if our firewall blocks a port. We will use the “telnet” command in the following manner:
Here, “linuxhint.com” is the name of the web server that we wanted to access. Whereas “80” refers to the port number whose status we wish to find out.
The following output implies a successful connection to the specified web server, which means that the specified port is not blocked by our firewall.
Method # 2: Using the “nc” Command
Now, we will use the “nc” command or the “netcat” utility for accessing a web server via a specific port to figure out if that port is blocked by our firewall or not. The “nc” command for this purpose can be used in the following manner:
The successful connection message shown in the following image indicates that the specified port is not blocked by our firewall:
Conclusion
By using either of the two methods discussed in this article, you can conveniently find out if a specific port is blocked by your firewall or not. In this way, you will be able to connect to your desired web servers smoothly on a port of your choice.
About the author
Karim Buzdar
Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.
How to Check if a Port is Blocked by the Firewall in Ubuntu
As you know, all the applications require access to certain ports, and when the firewall blocks those ports, the applications will not function properly and will not be able to communicate with the network.
And if you are having trouble reaching a specific application or service, you may need to check the firewall settings to ensure the necessary ports are open, but if you want something that should let you know whether the specific port is open in your environment, you can use telnet and the nc command to determine if the port is open or closed.
So let’s see how you can use telnet and the nc command to test if a specific port is open.
Methods to Check if a Port is Blocked by the Firewall
There are multiple ways through which you can check the status of the port on your system using the following command:
telnet command to check port is open or blocked
One of the simplest and easiest ways to identify port status is by using the telnet command, which is usually used to connect to remote servers and access systems similar to ssh, but you can use it to check if a port is open by trying to connect to it.
If the connection is successful, the port is considered open and accepting connections, and if the connection fails, it means the port is either closed or not accepting connections.
To install telnet on your system, open a terminal window and run any of the following commands, depending on your distribution:
$ sudo apt install telnetd -y $ sudo yum install telnetd $ sudo zypper install telnetd $ sudo pacman -Sy telnetd
Once the installation is complete, you can follow the syntax from the below code snippet, where I’m checking port 8080, which is generally used for web servers.
If telnet is able to connect to the port, it means that the web server is running properly, and if telnet is not able to connect to the port, it could indicate a problem with the firewall or that the web server itself may not be running.
$ telnet 127.0.0.1 8080
The output of the above command says “telnet: Unable to connect to remote host: Connection refused” because the system doesn’t have open port 8080.
And the result is different when I change the port number from 8080 to 9091, which is used for transmission-cli.
You can try the same thing by replacing the IP address and port number with the ones you want to test.
nc command to check port is open or blocked
nc command is also working similar to telnet, but it provides more advanced network capabilities such as port scanning, banner grabbing, file transfer, network debugging, and many other interesting features.
And due to this fact, it is one of the most versatile tools for network administrators and security professionals. If you want to learn more about this tool, you can check out this article.
Anyway, let’s come back to the main topic, where I’ll check whether port 8080 is active on my localhost, but first I need to install the NetCat package on the system using the following command:
$ sudo apt install -y netcat $ sudo dnf install -y nc $ sudo pacman -S nmap-ncat-2
To check out the port status, you can use nc with the -zv option, where z will only scan for listening daemons without sending any data to the port and v will provide verbose output.
$ nc –zv "127.0.0.1" 8080
The output of the command
Now let me run the same command, changing the port number from 8080 to 9091, and see if it is also active on my localhost.
$ nc -zv "trendoceans" 9091
And the result is success, with the message “Connection to trendoceans (127.0.1.1) 9091 port [tcp/*] succeeded!’
Wrap up
I hope this information was helpful to you and that you can now easily tell which port is open or closed by the firewall or if an application is not listening to a certain port.
For future reference, I have put the command below, which you can directly use to check port status in Linux.
If you have any questions or comments, please feel free to leave them in the comments section below.
A man with a tech effusive who has explored some of the amazing technology stuff and is exploring more. While moving towards, I had a chance to work on Android development, Linux, AWS, and DevOps with several open-source tools.
Check if port is open or closed on a Linux server?
It’s not quite clear what you’re asking. What do you mean by «open»? Do you mean some server is listening on that port? Or do you mean it’s allowed by the system firewall? Or what?
nc -w5 -z -v
A topic that contains an answer also for kernel level services and programs serverfault.com/questions/1078483/…
8 Answers 8
You can check if a process listens on a TCP or UDP port with netstat -tuplen .
To check whether some ports are accessible from the outside (this is probably what you want) you can use a port scanner like Nmap from another system. Running Nmap on the same host you want to check is quite useless for your purpose.
GNU netstat knows the parameters -t , -u , -p , -l , -e , and -n . Thanks to the options parser it can be expressed as -tuplen . linux.die.net/man/8/netstat
Also, the telnet command usually does only supports TCP, so you’re out of luck if the service you want to check runs on another protocol.
According to article: computingforgeeks.com/netstat-vs-ss-usage-guide-linux netstat is deprecated, and ss is it’s replacement, so you can do ss -an , ss -tuplen or for tcp listening sockets ss -ntlp .
Quickest way to test if a TCP port is open (including any hardware firewalls you may have), is to type, from a remote computer (e.g. your desktop):
Which will try to open a connection to port 80 on that server. If you get a time out or deny, the port is not open 🙂
OK, in summary, you have a server that you can log into. You want to see if something is listening on some port. As root, run:
this will show a listing of processes listening on TCP and UDP ports. You can scan (or grep) it for the process you’re interest in,and/or the port numbers you expect to see.
If the process you expect isn’t there, you should start up that process and check netstat again. If the process is there, but it’s listening on a interface and port that you did not expect, then there’s a configuration issue (e.g., it could be listening, but only on the loopback interface, so you would see 127.0.0.1:3306 and no other lines for port 3306, in the case of the default configuration for MySQL).
If the process is up, and it’s listening on the port you expect, you can try running a «telnet» to that port from your Macbook in your office/home, e.g.,
telnet xxxxxxxxxxxx.co.uk 443
That will test if (assuming standard ports) that there’s a web server configured for SSL. Note that this test using telnet is only going to work if the process is listening on a TCP port. If it’s a UDP port, you may as well try with whatever client you were going to use to connect to it. (I see that you used port 224. This is masqdialer, and I have no idea what that is).
If the service is there, but you can’t get to it externally, then there’s a firewall blocking you. In that case, run:
This will show all the firewall rules as defined on your system. You can post that, but, generally, if you’re not allowing everything on the INPUT chain, you probably will need to explicitly allow traffic on the port in question:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
or something along those lines. Do not run your firewall commands blindly based on what some stranger has told you on the Internet. Consider what you’re doing.
If your firewall on the box is allowing the traffic you want, then your hosting company may be running a firewall (e.g., they’re only allowing SSH (22/tcp), HTTP (80/tcp) and HTTPS (443/tcp) and denying all other incoming traffic). In this case, you will need to open a helpdesk ticket with them to resolve this issue, though I suppose there might be something in your cPanel that may allow it.