Linux check udp port open

How to check if port is in use on Linux or Unix

H ow do I determine if a port is in use under Linux or Unix-like system? How can I verify which ports are listening on Linux server? How do I check if port is in use on Linux operating system using the CLI?

It is important you verify which ports are listening on the server’s network interfaces. You need to pay attention to open ports to detect an intrusion. Apart from an intrusion, for troubleshooting purposes, it may be necessary to check if a port is already in use by a different application on your servers. For example, you may install Apache and Nginx server on the same system. So it is necessary to know if Apache or Nginx is using TCP port # 80/443. This quick tutorial provides steps to use the netstat, nmap and lsof command to check the ports in use and view the application that is utilizing the port.

Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements lsof, ss, and netstat on Linux
Est. reading time 3 minutes

How to check if port is in use in

To check the listening ports and applications on Linux:

  1. Open a terminal application i.e. shell prompt.
  2. Run any one of the following command on Linux to see open ports:
    sudo lsof -i -P -n | grep LISTEN
    sudo netstat -tulpn | grep LISTEN
    sudo ss -tulpn | grep LISTEN
    sudo lsof -i:22 ## see a specific port such as 22 ##
    sudo nmap -sTU -O IP-address-Here
  3. For the latest version of Linux use the ss command. For example, ss -tulw

Let us see commands and its output in details.

Option #1: lsof command

The syntax is:
$ sudo lsof -i -P -n
$ sudo lsof -i -P -n | grep LISTEN
$ doas lsof -i -P -n | grep LISTEN ### [OpenBSD] ###
Sample outputs:

Fig.01: Check the listening ports and applications with lsof command

Option #2: netstat command

You can check the listening ports and applications with netstat as follows.

Linux netstat syntax

Run netstat command along with grep command to filter out port in LISTEN state:
$ netstat -tulpn | grep LISTEN
The netstat command deprecated for some time on Linux. Therefore, you need to use the ss command as follows:
sudo ss -tulw
sudo ss -tulwn
sudo ss -tulwn | grep LISTEN

Where, ss command options are as follows:

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

  • -t : Show only TCP sockets on Linux
  • -u : Display only UDP sockets on Linux
  • -l : Show listening sockets. For example, TCP port 22 is opened by SSHD server.
  • -p : List process name that opened sockets
  • -n : Don’t resolve service names i.e. don’t use DNS

FreeBSD/MacOS X netstat syntax

$ netstat -anp tcp | grep LISTEN
$ netstat -anp udp | grep LISTEN

OpenBSD netstat syntax

$ netstat -na -f inet | grep LISTEN
$ netstat -nat | grep LISTEN

Option #3: nmap command

The syntax is:
$ sudo nmap -sT -O localhost
$ sudo nmap -sU -O 192.168.2.13 ##[ list open UDP ports ]##
$ sudo nmap -sT -O 192.168.2.13 ##[ list open TCP ports ]##
Sample outputs:

Fig.02: Determines which ports are listening for TCP connections using nmap

A note about Windows users

You can check port usage from Windows operating system using following command:
netstat -bano | more
netstat -bano | grep LISTENING
netstat -bano | findstr /R /C:»[LISTEING]»

Conclusion

This page explained command to determining if a port is in use on Linux or Unix-like server. For more information see the nmap command and lsof command page online here

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

How to Check for Open Ports in Linux

When you are troubleshooting networking issues in Linux or are looking for ways to improve the security of your Linux machine, you will need to know if and which ports are open. In this article we will look at different ways to list or display open ports in Linux.

What is a Port?

A port is a 16-bit number (0 to 65535) to help identify a given application or process on a Linux (Unix) operating system. Port differentiates one application from another on a Linux system.

Below are the different categories of ports:

  • 0 – 1023 – Referred to as Well Known Ports
  • 1024 – 49151 –Referred to as Registered Ports
  • 49152 – 65535 – Referred to as Dynamic Ports

Using the following command, a list of applications and ports is displayed on your terminal:

TCP: TCP stands for Transmission Control Protocol. It is the most commonly-used protocol on the Internet. TCP is not just one-way communication, rather it sends packets back to acknowledge it’s received your packets.

UDP: Also known as User Datagram Protocol. It is an alternative communications protocol to TCP. The UDP protocol works similar to TCP. However, it ignores all error-checking stuff. UDP is necessary when speed is desirable and error correction is not needed.

SOCKETS: Socket allows communication from two different processes on the same or different machines.

Let’s look at different ways to list an open port in Linux.

1. Netstat

In this method we will use the command netstat -atu to check for open ports in Linux.

We used the -a , -t and -u flags for netstat.

  • -a: shows all sockets
  • -t: shows TCP connections
  • -u: shows UDP connections

You can also add the -p flag to show related PID of the process or program name.

To display only UDP ports, you can use the following command:

Also, you can use the following command to search for TCP ports:

2. lsof

Instead of using netstat, we can use the lsof command to display open ports in Linux:

The following command can also help to display open sockets:

Also, you can use the command below to list all TCP connections:

Moreover, you can use the following command for UDP connections:

3. Network Mapped Command

In this method we will use nmap to detect the open port on your system. We can use the following command to show tcp port connections:

Finally, to show udp port connections, we can use the following command:

Conclusion

When it comes to the security of your Linux PC, the first thing to do is to close all unnecessary ports to prevent external access. With the methods listed above, you will be able to easily check for open ports on a Linux system and determine which ports should be closed or remain open.

Michael wears many hat in the opensource industry. He is based in Accra, Ghana. He revels in anything Linux and Devops.

2 comments

“the first thing to do is to close all unnecessary ports”
The $64,000 question is How do I determine whether a port is unnecessary?

Those services which are not really being used we should shut them down like say postfix, httpd if that machine is db server we intend to use only say mysql db on it then there is not need to keep other service on it.

Comments are closed.

RedMagic 6S Pro Review: Gaming Is Serious Business.

How to Boot to Recovery Mode (Safe Mode) in Ubuntu

Ubuntu Software Center Not Working? Here Are the Fixes

How to Stress Test a Graphics Card on Linux

How to Mount a Windows Share Folder on Linux

How to Mount Your iPhone as an External Drive in Ubuntu

How to Fix Ubuntu Freezing in VirtualBox

How to Fix «Repository Does Not Have Release File» Error

How to Reset the Root Password in Linux

How to Combine PDF Files on Windows and Linux

8 Reasons to Switch from Windows to Linux

Affiliate Disclosure: Make Tech Easier may earn commission on products purchased through our links, which supports the work we do for our readers.

Источник

Как узнать, открыт или закрыт порт TCP или UDP в Linux

Информация о том, открыт или закрыт порт TCP или UDP, является фундаментальной задачей для любого системного и сетевого администратора. Часто важно знать, открыты ли порты, чтобы установить связь со службой, которая прослушивает их, но также очень важно знать, закрыты ли они, чтобы избежать возможных проблем с безопасностью. Сегодня в этой статье мы покажем вам, как узнать, открыт или закрыт порт в Linux операционная система, поскольку эта операционная система обычно используется на серверах.

Есть несколько способов проверить, открыт или закрыт определенный порт, особенно в Linux, первый из них — использовать популярную программу Netcat, которая предустановлена ​​во всех дистрибутивах, а затем очень хороший способ узнать, открыт ли порт. Это можно сделать, проверив его напрямую с помощью Nmap программа, которая позволит нам сканировать все порты определенного хоста. Наконец, если мы хотим знать, есть ли у нас открытый или закрытый порт, нам нужно будет посмотреть его в брандмауэр а также в текущих подключениях операционной системы.

Просмотр открытых портов с помощью Netcat

Netcat — это инструмент, который по умолчанию входит в большинство дистрибутивов Linux, поэтому, помимо того, что он очень прост в использовании, нам не нужно устанавливать никаких дополнительных пакетов. Прежде чем проверять с помощью Netcat, открыт ли порт, давайте посмотрим на два наиболее важных параметра Netcat:

  • z — это параметр, который гарантирует, что в конце проверки соединение будет закрыто или, в противном случае, программа будет продолжать работать в цикле до тех пор, пока мы вручную не завершим ее с помощью Ctrl + C, аналогично тому, как когда пинг на Linux.
  • v — параметр, отвечающий за проверку того, открыт ли порт или закрыт.

Чтобы проверить порт, мы должны ввести в терминал следующее:

Например, чтобы проверить порт 443 на нашем маршрутизаторе мы будем Тип:

nc -zv 192.168.10.1 443

На следующем изображении вы можете увидеть, как этот порт открыт:

Если мы протестируем сайт этой статьи и порт 443, мы получим аналогичную информацию:

В случае, если он закрыт, мы должны поставить это:

Как вы видели, очень легко проверить, открыт или закрыт порт, с помощью Netcat, очень простой утилиты, которая предустановлена ​​в Linux. В дополнение к командам «z» и «v» у нас также есть другие доступные аргументы, которые позволят нам узнать больше информации. Если мы выполним следующую команду, появится справка:

Как видите, у нас есть много аргументов в пользу расширения функциональности.

Просмотр открытых портов с помощью Nmap

Nmap — это программа, которая по преимуществу обнаруживает хосты, а также проверяет, открыты ли разные порты. Эта программа не предустановлена ​​в операционных системах Linux, но мы можем установить ее прямо из репозиториев в следующем порядке:

sudo apt install nmap

После установки, чтобы узнать, открыт ли конкретный порт, мы должны ввести следующую команду:

На следующем изображении вы можете увидеть, как будет выглядеть открытый порт:

В случае, если порт закрыт или фильтруется брандмауэром, появится следующее:

Если мы хотим просканировать все порты определенного хоста или диапазон портов, нам нужно будет указать диапазон портов следующим образом:

nmap -p 1-65535 192.168.10.1

Как видите, проверить открытые порты с помощью Nmap действительно просто, кроме того, мы можем сканировать все хосты в домашней или профессиональной локальной сети, чтобы позже просканировать различные порты.

Проверьте брандмауэр в Linux

Если мы хотим проверить, есть ли у нас открытый порт для приема соединений, первое, что нужно проверить, — это статус брандмауэра в нашей операционной системе Linux. По умолчанию на всех серверах Linux политика разрешающая, то есть все пакеты принимаются политикой. Мы можем изменить эту политику на ограничительную и даже добавить новые таблицы, цепочки и правила, чтобы разрешить или запретить трафик.

Если в нашем Linux-терминале мы ставим следующее:

Все цепочки и правила мы получим из таблицы «filter» iptables, в случае использования Nftables необходимо указать следующую команду:

nft list ruleset

Очень важная рекомендация по безопасности заключается в том, что все порты на сервере Linux должны быть закрыты, таким образом, когда мы запускаем службу, прослушивающую определенный порт, он не будет доступен, если мы не разрешим это в брандмауэре. Мы должны детально проверить, открыт ли тот или иной порт, чтобы наши услуги были доступны из-за границы.

Просмотр статуса TCP- и UDP-подключений

Если нас интересует состояние всех протоколов TCP, UDP, ICMP и других в нашей операционной системе, широко используемым инструментом всегда был «netstat», однако этот инструмент был на втором месте благодаря новому «ss». это позволит нам легко и быстро получить большой объем информации. Этот инструмент отвечает за проверку всех открытых или закрытых сокетов на нашем сервере Linux, и мы сможем увидеть статистику этих открытых или закрытых сокетов. Если вы использовали инструмент netstat в прошлом, мы уверены, что вам понравится этот новый инструмент «ss».

Инструмент «ss» уже предустановлен в операционных системах Linux как часть самой системы, как и в случае с «ping», «traceroute» и многими другими инструментами. Если мы открываем консоль как в пользовательском режиме, так и в режиме суперпользователя, мы должны выполнить:

Как только мы выполним этот заказ, мы увидим следующее:

Мы увидим статус соединения (ESTAB), а также полученные и отправленные пакеты, локальный адрес и порт, а также удаленный адрес и используемый порт. Мы собираемся получить большое количество портов, используемых различными программами и службами, которые мы установим в операционной системе.

Если мы хотим видеть статус всех портов (сокетов), мы можем установить следующий порядок:

Если мы хотим видеть только порты, которые «слушают», мы должны ввести следующую команду:

На следующем изображении вы можете увидеть пример портов, которые ГОТОВЫ для приема входящих соединений:

В случае, если мы хотим показать TCP-соединения, нам нужно будет использовать аргумент «-t», а в случае, если мы хотим показать UDP-соединения, нам придется использовать аргумент «-u».

Команда «ss» действительно полезна для отображения всех установленных соединений, а также для прослушивания в нашей операционной системе Linux.

Как вы видели, у нас есть разные методы, чтобы узнать, открыт или закрыт порт на удаленном хосте, а также на нашем локальном компьютере, в зависимости от того, что нам интересно знать, мы будем использовать тот или иной инструмент, самое важное. заключается в том, что все неиспользуемые порты должны быть закрыты в целях безопасности через брандмауэр, таким образом мы избежим проблем с безопасностью и эксплуатации уязвимостей на серверах.

Источник

Читайте также:  Как записать загрузочный средствами windows
Оцените статью