Вопрос или проблема
Как включить конкретный порт в Ubuntu версии 22, чтобы он был доступен извне?
Я уже вошел на сервер через ssh, используя порт 22, и могу успешно выполнять все команды.
Я включил брандмауэр ufw и также разрешил порты 22, 80 и 22786.
Порты 22 и 80 работают нормально и доступны, но я не могу получить доступ к порту 22786 извне.
Нужно ли мне изменить какие-либо другие настройки брандмауэра, чтобы включить порт 22786?
admin@prod:~$ sudo ufw status numbered
Статус: активен
Для Действие Откуда
-- ------ ----
[ 1] 22786 ДОПУСТИТЬ В Везде
[ 2] 22 ДОПУСТИТЬ В Везде
[ 3] 80 ДОПУСТИТЬ В Везде
[ 4] 22786 (v6) ДОПУСТИТЬ В Везде (v6)
[ 5] 22 (v6) ДОПУСТИТЬ В Везде (v6)
[ 6] 80 (v6) ДОПУСТИТЬ В Везде (v6)
admin@prod:~$ sudo netstat -plunt
Активные интернет-соединения (только серверы)
Протокол Recv-Q Send-Q Локальный адрес Зарубежный адрес Состояние PID/Имя программы
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1619/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 834/sshd: /usr/sbin
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 927/sshd: admin@pts
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 784/systemd-resolve
tcp6 0 0 :::80 :::* LISTEN 1619/nginx: master
tcp6 0 0 :::22 :::* LISTEN 834/sshd: /usr/sbin
tcp6 0 0 ::1:6010 :::* LISTEN 927/sshd: admin@pts
udp 0 0 127.0.0.53:53 0.0.0.0:* 784/systemd-resolve
Я установил Nginx
вручную и смог к нему получить доступ по адресу http://ipaddress
Но когда я проверяю через этот онлайн-инструмент (https://www.yougetsignal.com/tools/open-ports/), он показывает, что порты 22
и 80
открыты, а 22786 закрыт.
Порт 22
уже был открыт, когда я получил этот хост, а порт 80
стал доступен после установки Nginx
и добавления его в ufw
с помощью команды sudo ufw allow 80
. Я использовал команду sudo ufw allow 22786
для включения этого порта тоже, но безуспешно.
Важно знать, есть ли приложение на сервере, которое слушает на TCP порту 22786.
Пожалуйста, приложите сюда ответ от команды netstat
на вашем сервере.
sudo netstat -lntp
Вы также должны увидеть порт 22786 в списке прослушиваемых TCP портов.
Если netstat
отсутствует, установите net-tools
.
sudo apt-get update
sudo apt-get install net-tools
Вы можете попробовать netcat nc
в качестве замены прослушивающему приложению, если вам не хватает необходимого приложения на порту 22786 для вашего теста.
sudo nc -l -p 22786 -k
В другом окне терминала (отличном от того, где работает nc
), повторите команду netstat
.
Ответ или решение
Чтобы сделать порт 22786 доступным из внешнего мира на сервере Ubuntu 22, необходимо выполнить несколько шагов и убедиться, что весь процесс настроен корректно. Рассмотрим пошаговое руководство.
1. Проверка, слушает ли приложение на порту 22786
Первым делом нужно убедиться, что какое-либо приложение или служба действительно слушает на порту 22786. Используйте команду netstat
, чтобы проверить это:
sudo netstat -lntp | grep 22786
Если в результате вывода не будет никаких записей, это значит, что ни одно приложение не прослушивает этот порт, и вам следует его запустить. Для тестирования можно использовать netcat
(nc):
sudo apt-get update
sudo apt-get install net-tools # Установка net-tools, если он еще не установлен
sudo nc -l -p 22786 -k # Запуск netcat для прослушивания порта 22786
Затем снова выполните команду netstat
, и вы должны увидеть запись для порта 22786.
2. Проверка настроек UFW
Если приложение слушает на порту 22786, следующим шагом будет подтверждение, что UFW (Uncomplicated Firewall) настроен правильно. Вы уже выполнили команду:
sudo ufw status numbered
Вывод показывает, что порт 22786 разрешен. Убедитесь, что вы видите его в списке. Если все настроено верно, но доступ не осуществляется, проверьте, активен ли UFW:
sudo ufw status
3. Проверка конфигурации сервера и маршрутизации
Если UFW правильно настроен и приложение слушает на порту 22786, следующим шагом будет проверить настройки сетевого интерфейса и маршрутизации:
- Убедитесь, что сервер имеет правильный внешний IP-адрес и доступен из Интернета.
- Проверьте настройки NAT (Network Address Translation), если ваш сервер находится за маршрутизатором или в облачной среде (например, AWS, DigitalOcean). Вам может потребоваться настроить перенаправление портов.
4. Тестирование доступа к порту
Для тестирования доступа к порту 22786 из внешней сети вы можете использовать онлайн-инструменты, такие как YouGetSignal. Введите IP-адрес вашего сервера и номер порта, чтобы проверить его доступность.
5. Дополнительные советы и рекомендации
Если порт все еще остается недоступным, рассмотрите следующие варианты:
-
Проверьте другие правила брандмауэра, если используется более сложная конфигурация безопасности (например, iptables или другие фаерволы).
-
Временная деактивация UFW для тестирования:
sudo ufw disable
Если после этого доступ к порту стал возможен, проблема может заключаться в неправильной настройке UFW, и вам следует её внимательно пересмотреть.
-
Проверьте, не блокирует ли доступ к порту 22786 ваш провайдер хостинга.
Заключение
Следуя этим шагам, вы сможете настроить доступ к порту 22786 на вашем сервере Ubuntu 22. Если у вас возникнут дополнительные проблемы, предоставьте больше информации о состоянии сети и конфигураций вашего сервера.