Содержание
Если вы устраняете проблемы с подключением к сети или настраиваете брандмауэр, первое, что нужно проверить, — это то, какие порты действительно открыты в вашей системе.
В этой статье описывается несколько подходов к выяснению того, какие порты открыты извне в вашей системе Linux.
Порт прослушивания — это сетевой порт, который прослушивает приложение. Вы можете получить список прослушивающих портов в вашей системе, запросив сетевой стек с помощью таких команд, как ss
, netstat
или lsof
. Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра.
В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Например, если вы используете веб-сервер, который прослушивает порты 80
и 443
и эти порты открыты на вашем брандмауэре, любой (кроме заблокированных IP-адресов) сможет получить доступ к веб-сайтам, размещенным на вашем веб-сервере, с помощью своего браузера. В этом случае и 80
и 443
являются открытыми портами.
Открытые порты могут представлять угрозу безопасности, поскольку каждый открытый порт может быть использован злоумышленниками для использования уязвимости или выполнения любого другого типа атаки. Вы должны открыть только те порты, которые необходимы для работы вашего приложения, и закрыть все остальные порты.
Проверьте открытые порты с помощью nmap
Nmap — это мощный инструмент сетевого сканирования, который может сканировать отдельные хосты и большие сети. Он в основном используется для аудита безопасности и тестирования на проникновение.
Если возможно, nmap
должен стать вашим первым инструментом для сканирования портов. Помимо сканирования портов, nmap
также может определять Mac-адрес, тип ОС , версии ядра и многое другое.
Следующая команда, выдаваемая с консоли, определяет, какие порты прослушивают TCP-соединения из сети:
sudo nmap -sT -p- 10.10.8.8
-sT
указывает nmap
сканировать TCP-порты, а -p-
сканировать все 65535 портов. Если -p-
не используется, nmap
будет сканировать только 1000 самых популярных портов.
Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
Приведенные выше выходные данные показывают, что в целевой системе открыты только порты 22
, 80
и 8069
.
Для поиска портов UDP используйте -sU
вместо -sT
:
sudo nmap -sU -p- 10.10.8.8
Для получения дополнительной информации посетите страницу руководства nmap и прочтите обо всех других мощных возможностях этого инструмента.
Проверьте открытые порты с помощью netcat
Netcat (или nc
) — это инструмент командной строки, который может читать и записывать данные через сетевые соединения, используя протоколы TCP или UDP.
С помощью netcat
вы можете сканировать отдельный порт или диапазон портов.
Например, для поиска открытых TCP-портов на удаленном компьютере с IP-адресом 10.10.8.8
в диапазоне 20-80
вы должны использовать следующую команду:
nc -z -v 10.10.8.8 20-80
Параметр -z
указывает nc
сканировать только открытые порты без отправки каких-либо данных, а параметр -v
предназначен для получения более подробной информации.
Результат будет выглядеть примерно так:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port [tcp/ssh] succeeded! ... Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Если вы хотите, чтобы на экране отображались только строки с открытыми портами, отфильтруйте результаты с помощью команды grep
.
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded! Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Чтобы сканировать UDP-порты, передайте параметр -u
команде nc
:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
Конструкция 2>&1
перенаправляет стандартную ошибку на стандартный вывод.
Другой способ проверить, открыт или закрыт определенный порт, — использовать оболочку Bash /dev/tcp/..
или /dev/udp/..
псевдоустройство.
При выполнении команды на псевдоустройстве /dev/$PROTOCOL/$HOST/$IP
Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.
Следующий оператор if..else проверяет, открыт ли порт 443
на kernel.org
:
if timeout 5 bash -c '/dev/null' then echo "Port is open" else echo "Port is closed" fi
Port is open
Как работает приведенный выше код?
При подключении к порту с помощью псевдоустройства таймаут по умолчанию огромен, поэтому мы используем команду timeout
чтобы завершить тестовую команду через 5 секунд. Если соединение установлено с портом 443
kernel.org
тестовая команда вернет true.
Чтобы проверить диапазон портов, используйте цикл for :
for PORT in {20..80}; do timeout 1 bash -c "$PORT &>/dev/null" && echo "port $PORT is open" done
Результат будет выглядеть примерно так:
port 22 is open port 80 is open
Выводы
Мы показали вам несколько инструментов, которые вы можете использовать для поиска открытых портов. Существуют также другие утилиты и методы для проверки открытых портов, например, вы можете использовать модуль socket
Python, curl
, telnet
или wget
.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
FTP
Сен 11, 2020
Olha L.
2мин. чтения
Возникли проблемы с подключением к учётной записи FTP? Если это так, стоит проверить, не является ли порт 21 причиной сбоя соединения. В этом руководстве мы покажем вам, как проверить, открыт ли порт 21.
Обновите свой хостинг уже сегодня с Hostinger!
Как Проверить Открыт ли Порт 21
Но прежде чем мы начнём, убедитесь, что у вас есть доступ к вашей системной консоли. Вы можете найти больше информации о том, как получить доступ к системной консоли в Windows, Linux и macOS, в этой статье (англ.).
Вот как можно проверить открыт ли FTP-порт 21:
- Откройте системную консоль и введите следующую строку. Обязательно укажите ваше доменное имя. Эта команда применима ко всем операционным системам.
telnet vashdomen.com 21
- Если порт 21 не заблокирован, появится ответ 220. Обратите внимание, что это сообщение может выглядеть по-разному:
220 FTP Server ready.
- Если ответ 220 не появился, это означает, что FTP-порт 21 заблокирован. В таком случае мы рекомендуем вам обратиться к своему интернет-провайдеру, чтобы открыть порт.
Как Включить Telnet Клиент
Поскольку для проверки соединения мы используем команду Telnet, вам необходимо убедиться, что в вашей операционной системе включен Telnet клиент.
Telnet — это протокол клиент-сервер, обеспечивающий удалённое управление компьютерами. В нашем случае он поможет нам проверить подключение к FTP-порту 21. В этом примере мы покажем, как включить Telnet клиент в Windows:
- Одновременно нажмите клавиши Window+R, затем введите control, чтобы открыть панель управления.
- Перейдите в Программы -> Программы и компоненты. Затем выберите опцию Включение или выключение компонентов Windows.
- В новом диалоговом окне установите флажок возле Telnet Client и нажмите OK.
Что Такое FTP-порт 21?
FTP — это интернет-протокол, который позволяет компьютерам в сети массово обмениваться файлами. Для правильной работы FTP должен использовать два порта: порт 21 для управления и контроля и порт 20 для передачи данных. FTP-клиент не может выполнить протокол, если ему не удаётся подключиться к портам FTP.
К сожалению, некоторые маршрутизаторы и брандмауэры блокируют этот порт, потому что хакеры часто атакуют FTP-серверы через порт 21.
Если у вас возникла проблема с FTP-соединением, важно проверить порт 21 на доступность.
Итоги
Некоторые маршрутизаторы и брандмауэры блокируют FTP-порт 21 из соображений безопасности, поэтому перед выполнением протокола передачи файлов важно проверить соединение порта. Вы можете найти больше информации о FTP здесь.
Мы надеемся, что вы нашли этот урок полезным. Если у вас есть вопросы, не стесняйтесь оставлять их в комментариях ниже.
Проверка Ping через командную строку Windows 10 или Windows 7 – это отличный способ проверить стабильность соединения с каким-либо сервером или наличия подключения к Интернету как такового. Поскольку страницы в браузере могут не загружаться по разным причинам и подобная проблема не всегда говорит об отсутствии доступа к Интернету.
Для запуска командной строки проще всего воспользоваться поиском в меню «Пуск». Для этого откройте меню «Пуск», введите команду «cmd» и после выполнения поиска откройте программу «Командная строка». При этом командную строку можно запускать как в обычном режиме, так и от имени администратора, это не принципиально.
На скриншотах внизу показано, как это выглядит в операционных системах Windows 10 и Windows 7.
Также командную строку можно запустить при помощи меню «Выполнить». В этом случае нужно нажать комбинацию клавиш Win-R и в открывшемся меню ввести команду «cmd».
Запуск через меню «Выполнить» работает, как в Windows 10, так и в Windows 7.
После запуска командной строки можно приступать к проверке пинга. Проверка пинг работает абсолютно одинаково, как в Windows 7 и Windows 10, так и в остальных версиях этой операционной системы.
Для проверки нужно ввести в командную строку команду «ping» и через пробел указать IP-адрес или доменное имя, которое связано с данным IP-адресом. Например, если вы хотите проверить пинг до IP-адреса «8.8.8.8», то вам нужно выполнить следующую команду:
ping 8.8.8.8
Аналогичным способом выполняется проверка пинга с указанием домена. Просто вводите команду «ping» и через пробел указываете домен. Например, если вы хотите проверить пинг до сервера «google.com», то вам нужно выполнить следующую команду:
ping google.com
По умолчанию, операционные системы Windows 10 и Windows 7 отправляют только 4 пакета. Для того чтобы увеличить это значение нужно использовать параметр «-n». Например, если вы хотите 10 раз проверить пинг до IP-адреса «8.8.8.8», то нужно выполнить следующую команду:
ping 8.8.8.8 -n 10
Для непрекращающейся проверки пинга нужно использовать параметр «-t». Например, если вы хотите постоянно проверять пинг до IP-адреса «8.8.8.8», то нужно выполнить следующую команду:
ping 8.8.8.8 -t
Обратите внимание, при использовании параметра «-t» операционная система Windows будет посылать ping-запросы до тех пор, пока пользователь не нажмет комбинацию клавиш CTRL+C или не закроет командную строку.
Кроме этого, у команды «ping» есть и другие параметры. Для того чтобы получить справку введите в командную строку «ping /?».
Но, большинство этих параметров вряд ли пригодятся обычному пользователю и ориентированы в первую очередь на системных администраторов.
При выполнении проверки на пинг рядом с каждым отправленным пакетом отображается время его возврата в миллисекундах (мс). Это именно то, чтобы обычно называют «пингом».
После завершения выполнения команды «ping» обязательно выводится статистика с результатами. Первая часть статистики отображает количество отправленных, полученных и потерянных пакетов. Если соединение хорошее, то количество отправленных и полученных пакетов будет одинаковым, а количество потерянных пакетов будет равно нулю.
Ниже статистика о времени приема и передачи пакетов в миллисекундах (мс) или пинг.
Здесь указывается минимальное, максимальное и среднее время передачи. При стабильном соединении эти значения не должны сильно отличаться друг от друга.
Посмотрите также:
Используемые источники:
- https://routerus.com/check-open-ports-linux/
- https://www.hostinger.ru/rukovodstva/kak-proverit-otkryt-li-port-21
- https://comp-security.net/%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%b8%d1%82%d1%8c-ping-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%bd%d1%83%d1%8e-%d1%81%d1%82%d1%80%d0%be%d0%ba%d1%83/