Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Is it possible to check that if the ports are open for the remote system on ubuntu server?

I should able to check if a port(eg:ssh) on my machine is open for the remote machine.

share|improve this question

7 Answers 7

up vote 24 down vote accepted

use good old telnet:

[user@lappie ~]$ telnet host 22
Trying ip.adr.tld ...
Connected to host  (ip.addr.tld).
Escape character is '^]'.
SSH-2.0-OpenSSH_5.1p1 Debian-5

this is a successful attempt. An unsuccessful one should look like this;

[user@lappie ~]$ telnet host 23
Trying ip.adr.tld ...
telnet: connect to address ip.adr.tld: Connection refused
telnet: Unable to connect to remote host: Connection refused

or with nmap

[user@lappie ~]$ nmap host

Starting Nmap 5.21 ( http://nmap.org ) at 2010-10-07 11:25 CEST
Nmap scan report for host (ip.adr.tld)
Host is up (0.0052s latency).
rDNS record for ip.adr.tld : host.domain.tld
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3000/tcp open  ppp
5666/tcp open  nrpe

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
share|improve this answer
    
Great help!. I felt It's only listing the port no's for which the services are running on the specified host. I checked it stopping the services and running nmap command again. so it didn't list the port which I stopped. Is it really showing the open ports for remote machine? –  user53864 Oct 7 '10 at 10:39
1  
@user53864: you should run this test on a remote machine, obviously. –  natxo asenjo Oct 7 '10 at 11:00
    
This will only work for TCP services. –  kce Oct 27 '11 at 17:07

From this StackOverflow answer:

You seem to be looking for a port scanner such as nmap or netcat, both of which are available for Windows, Linux, and Mac OS X.

For example, check for telnet on a known ip:

  nmap -A 192.168.0.5/32 -p 23

For example, look for open ports from 20 to 30 on host.example.com:

  nc -z host.example.com 20-30
share|improve this answer

This is simple as :

nc -zw3 domain.tld 22 && echo "opened" || echo "closed"

-w3 is the timeout

share|improve this answer

Telnet will only work for TCP services, so if you're trying to see if your DHCP server (UDP/68) is running on a remote machine it won't work. Likewise nmap defaults to only scanning TCP ports.

For UDP ports use:

nmap -sU example.com -p 68

share|improve this answer

For a script, I use something like the following:

nmap example.com -p 22 -sV --version-all -oG - | grep -iq '22/open'

The return value tells you whether the port is open!

share|improve this answer

nmap example.com -p 22

share|improve this answer

Use NMAP. Example:

nmap example.com

You can use IP address in place of domain name. Here is the full documentation: http://nmap.org/book/man.html

share|improve this answer
    
Its only listing the ports on which services are running on a specified machine. –  user53864 Oct 7 '10 at 6:05
    
Then you're using it wrong. –  Christoffer Hammarström Oct 7 '10 at 8:50
    
@user53864, that is correct. More specifically, it will list all OPEN ports and also describe what services are using them. If you are looking for a specific port, try simply "nmap example.com 22" as natxo asenjo said, which will scan port 22 (SSH) to see if it is open. –  Joshua Oct 7 '10 at 14:31

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.