Hostwinds Блог

Результаты поиска для:


5 способов проверить открытые порты на Linux Популярное изображение

5 способов проверить открытые порты на Linux

от: Hostwinds Team  /  Январь 14, 2025


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

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

Что такое порты?

Прежде чем прыгнуть в команды, давайте потратим время, чтобы понять, что такое порты:

  • Порты - это номера, которые определяют конкретные программы или приложения, работающие на вашем компьютере.Например:
    • Порты веб -сервера обычно используются Порт 80 (Http) или Порт 443 (Https).
    • Удаленные входы через SSH обычно используют Порт 22.
  • У каждого порта есть номер между 0 и 65535, которые попадают в три основные группы:
    • 0–1023: Зарезервировано для общих протоколов, таких как HTTP и FTP.
    • 1024–49151: Для приложений, которые вы устанавливаете.
    • 49152–65535: Временные порты, используемые, когда приложения подключаются к сервису.

С этим давайте рассмотрим, как проверить, что происходит с вашими портами.

Как проверить порты в Linux

У Linux есть несколько инструментов, которые помогут вам проверить открытые порты или прослушивание.Ниже мы проведем пять общих методов и объясним, что делает каждый.

1. Использование NetStat

Команда NetStat дает вам подробное представление о сетевых соединениях и использовании порта.

Откройте терминал и тип:

netstat -tuln

Вот что означает каждый вариант:

  • -t: Показать порты TCP (протокол управления передачей).
  • -U: Показать порты UDP (протокол Datagram пользователя).
  • -l: Показать только порты, которые активно слушают.
  • : Пропустить имена программ перевода (например, «SSH») в номера портов, что делает их быстрее.

Что вы увидите:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*

Вот как прочитать это:

  • Прото: Показывает, является ли это TCP или UDP.
  • Местный адрес: IP вашей машины и порт в использовании.
  • Иностранный адрес: IP и порт другой машины (или*, если он открыт для всех).
  • Состояние: Для TCP слушать означает, что он ждет соединений.

Быстрое примечание: NetStat является частью пакета Net-Tools, который может не быть установленным на более новых версиях Linux.Установите его, используя:

sudo apt install net-tools  # On Debian/Ubuntu  
sudo yum install net-tools  # On RHEL/CentOS 

2. Использование SS

сс это новая, более быстрая альтернатива NetStat.Это дает аналогичную информацию, но лучше работает в современных системах.

Запустите следующую команду:

ss -tuln

Варианты такие же, как NetStat, поэтому вы должны быть в состоянии прыгнуть прямо.

Что вы увидите:

Netid   State      Recv-Q Send-Q Local Address:Port           Peer Address:Port
tcp     LISTEN     0      128    0.0.0.0:22                  0.0.0.0:*         
udp     UNCONN     0      0      0.0.0.0:68                  0.0.0.0:*

Этот выход похож на NetStat, но сс Как правило, быстрее, особенно если вы имеете дело с большим количеством связей.

3. Использование LSOF

lsof (Список открытых файлов) - это удобный инструмент для того, чтобы увидеть, какие файлы или сетевые соединения используются процессами.

Чтобы увидеть, какие порты открыты, а что их использует, запустите:

sudo lsof -i -P -n
  • : Фильтры для сетевых файлов.
  • : Показывает номера портов сырых вместо имен услуг.
  • : Пропускает перевод IP -адресов на имена хоста для скорости.

Что вы увидите:

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234 root   3u  IPv4  12345      0t0  TCP *:22 (LISTEN)
dhclient  5678 root   6u  IPv4  54321      0t0  UDP *:68
  • Командование: Программа с использованием порта.
  • Пид: Идентификатор процесса.
  • ИМЯ: Порт и протокол (например, TCP на порту 22).

Почему это полезно:

Если вы устранение неполадок и вам нужно выяснить, какой процесс использует определенный порт, lsof Ваш инструмент.

4. Использование NMAP

NMAP (Сетевая Mapper) идеально подходит для сканирующих сетей и проверки того, какие порты открыты.

Чтобы сканировать все порты, запустите:

sudo nmap -sT -p- localhost
  • -ст: Выполняет сканирование подключения TCP.
  • -p-: Сканирует все 65 535 портов.

Что вы увидите:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
  • Порт: Номер порта и протокол (TCP или UDP).
  • СОСТОЯНИЕ: Сообщает, что порт открыт, закрыт или отфильтрован (заблокирован брандмауэром).
  • СЛУЖБА: Общее название службы с использованием порта.

Почему NMAP полезен:

NMAP Это здорово, если вы хотите полный обзор всех открытых портов в вашей системе или вам нужно сканировать другую машину.

5. Использование NC (Netcat)

Netcat это простой, но мощный инструмент для проверки, открыт ли определенный порт.

Чтобы проверить, открыт ли порт 22, введите:

nc -zv localhost 22
  • : Просто сканируйте открытые порты без отправки данных.
  • : Показать подробный выход.

Что вы увидите:

Connection to localhost 22 port [tcp/ssh] succeeded!

Почему это полезно:

Если вам просто нужно быстро проверить, открыт ли определенный порт, северо -запад Работа без особой суеты.

Понимание результатов

Когда вы проверяете порты, вот что обычно означают результаты:

  • Прослушивание/открытые порты: Эти порты готовы принять соединения.Например, веб -сервер будет прослушать на порту 80 или 443.
  • Закрытые порты: Эти порты не используются, поэтому они не принимают соединения.
  • Отфильтрованные порты: Эти порты заблокированы брандмауэром или правилом безопасности, поэтому они кажутся невидимыми.

Общие сценарии

При проверке портов вы можете встретить следующие сценарии:

  • Вы видите открытый порт, которого вы не ожидали: Это может означать, что программа работает, которая вам не нужна или узнает.Это хорошая идея для дальнейшего расследования.
  • Порт, который вам нужен, закрыт: Программа может не работать, или брандмауэр может блокировать ее.

Закрепление вашей системы

Проверка портов - это только первый шаг.Вот несколько способов укорочить вещи:

Остановить ненужные программы:
Если программа работает на порте, который вам не нужен, выключите:

sudo systemctl stop <service_name>
sudo systemctl disable <service_name>

Используйте брандмауэр:
Ограничьте доступ к портам, используя такой инструмент, как UFW (несложный брандмауэр):

sudo ufw allow 22     # Allow SSH  
sudo ufw deny 80      # Block HTTP

Регулярно отслеживать порты:
Сделайте привычку время от времени проверять открытые порты, особенно если вы запускаете сервер.

Заключение

Проверка портов в Linux не должна быть сложной.Независимо от того, используете ли вы NetStat, SS, LSOF, NMAP или NC, каждый инструмент дает вам немного другое представление о том, что происходит.Выберите тот, который лучше всего подходит для ваших нужд и не бойтесь изучать.Чем больше вы практикуете, тем легче становится!

Написано Hostwinds Team  /  Январь 14, 2025