Как открыть порты в Linux
Если вы хотите разрешить внешние подключения к ПК или серверу, вам нужно открыть правильный порт. Пользователи Linux могут открывать порты с помощью этого полезного руководства.
Нужно подключиться к внешнему ПК или серверу или нужен другой ПК или сервер для подключения к вам? Если вы используете Linux, вам нужно убедиться, что правильный порт открыт.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
В то время как другие операционные системы обычно имеют для этого какой-либо графический инструмент, в Linux все не так просто. Ниже мы расскажем вам, как открывать порты в Linux.
Что такое порт и зачем мне его открывать?
Порт — это конечная точка в сети. Думайте об этом как о двери, ведущей в определенную комнату или во внешний мир, но на вашем компьютере. Все, что вы делаете в Интернете, использует определенный порт или серию портов.
Например, допустим, вы хотите запустить свой собственный сервер Minecraft. Для этого вам нужно открыть порт, через который пользователи смогут подключаться к нему. То же самое относится к запуску собственного веб-, почтового или FTP-сервера.
Порты стандартизированы для всех подключенных к сети устройства. Первые 1024 порта (от 0 до 1023) называются известные номера портов. Они зарезервированы для наиболее часто используемых сервисов, таких как HTTP и HTTP (порты 80 и 443 соответственно) и SSH (порт 22).
Номера портов выше 1024 называются эфемерные порты, и обычно доступны для использования в онлайн-играх, частных веб-серверах и т. д. Номера портов от 1024 до 49151 вызываются зарегистрирован или пользовательские портыа номера с 49152 по 65535 известны как динамичный или частные порты.
Список открытых портов в Linux
Прежде чем пытаться открыть порт в Linux, убедитесь, что он еще не используется. Вы можете сделать это с помощью команды netstat, включенной в большинство дистрибутивов Linux. Если в вашем дистрибутиве нет netstat, вы можете использовать вместо него ss.
netstat -lntu
Это напечатает все прослушиваемые сокеты (-l) вместе с номером порта (-n). Он включает порты TCP (-t), а также UDP (-u). Если в вашей системе нет netstat, просто используйте ss с теми же параметрами.
сс-лнту
Как открыть порты в Linux
Для этого примера предположим, что мы хотим открыть порт 4000 для соединений TCP. Сначала нам нужно убедиться, что порт еще не используется. Делаем это через netstat или ss.
нетстат | grep :4000 сс | группа: 4000
Предполагая, что вывод пуст, мы можем добавить соответствующие правила для портов в системный брандмауэр. Методы для этого будут различаться в зависимости от вашего дистрибутива и от того, использует ли он более новый брандмауэр ufw или firewalld. Бесплатные услуги уф, пока CentOS обычно использует вместо этого брандмауэр. Конечно, некоторые дистрибутивы Linux все еще используют старый брандмауэр iptables.
Для пользователей Ubuntu и других систем на базе брандмауэра ufw
Вместо использования старого брандмауэра iptables Ubuntu и некоторые другие дистрибутивы используют ufw. В этих системах следующая команда откроет порт.
sudo ufw разрешить 4000
Пропустите следующие несколько шагов и проверьте только что открытый порт, чтобы убедиться, что он работает.
Как открыть порты в Linux с помощью CentOS и других систем на основе брандмауэра
Если в вашей системе используется firewalld, лучше всего использовать команду firewall-cmd для обновления правил.
sudo firewall-cmd –add-port=4000/tcp
Это не будет постоянным изменением, но мы расскажем, как сохранить правила после перезагрузки после тестирования порта.
Для других дистрибутивов Linux
Если в вашей системе Linux нет ufw или firewalld, вам нужно будет использовать iptables. Если он не установлен, загрузите его с помощью выбранного менеджера пакетов. После установки эти команды откроют порт 4000:
sudo iptables -A INPUT -p tcp –dport 4000 -j ПРИНЯТЬ перезапуск службы sudo iptables
Если ваша система использует systemctl, замените вторую команду на:
sudo systemctl перезапустить iptables
Тестирование недавно открытых портов для соединений
Затем мы должны протестировать порт, чтобы убедиться, что он принимает соединения. Мы делаем это, используя netcat (nc) для прослушивания порта, а затем пытаемся подключиться к нему через telnet.
Сначала откройте окно терминала и выполните следующую команду:
судо лс | нк -л -р 4000
Оставьте его работающим (слушающим) и откройте второе окно терминала. В этом окне вы будете использовать telnet для проверки подключения. Если telnet не установлен, сделайте это с помощью менеджера пакетов.
телнет [hostname/IP address] [port number]
Заменять [hostname/IP address] с IP-адресом вашей системы и [port number] с номером порта, который вы открыли.
телнет локальный хост 4000
Вы должны увидеть вывод, подобный приведенному ниже, указывающий на открытое соединение с nc.
Мы также можем показать, что порт открыт, используя nmap. Опять же, если команда еще не установлена, используйте диспетчер пакетов для ее получения.
nmap локальный -p 4000
Обратите внимание, что nmap будет отображать только открытые порты, которые прослушивают соединения. Вот почему мы используем netcat для тестирования, чтобы прослушивать этот порт. В противном случае порт не будет зарегистрирован как открытый.
Я не могу подключиться к только что открытому порту, что теперь?
Если вы выполнили все шаги, описанные выше, и не можете установить соединение с портом, дважды проверьте ввод. Если вы уверены, что все ввели правильно, скорее всего, вам потребуется перенастроить сетевой маршрутизатор, чтобы разрешить трафик.
Поскольку каждый сетевой маршрутизатор имеет разные экраны конфигурации, вам следует обратиться к страницам поддержки или руководству пользователя для вашего конкретного оборудования. Вам нужно будет проверить настройки переадресации портов или сопоставления портов, а также любой встроенный брандмауэр, который может использовать маршрутизатор.
Как навсегда открыть порт в Linux
После того, как вы протестировали свой открытый порт и убедились, что он работает, вы, вероятно, захотите сделать изменение постоянным. В противном случае изменения могут не сохраниться после перезагрузки. Если вы являетесь пользователем Ubuntu или иным образом используете брандмауэр ufw, вам не нужно об этом беспокоиться. Правила ufw не сбрасываются при перезагрузке.
Для пользователей брандмауэра
Заставить правило порта оставаться после перезагрузки легко с помощью firewalld. Просто добавьте флаг —permanent к своей начальной команде, и он будет включен в правила брандмауэра вашей системы Linux при запуске.
sudo firewall-cmd –add-port=4000/tcp –постоянный
Если вы все еще используете iptables
Брандмауэр iptables доставляет гораздо больше хлопот (возможно, это хорошая причина для перехода на firewalld или ufw). Чтобы «навсегда» открыть порт в iptables, вы можете установить в помощь пакет iptables-persistent.
При первой установке iptables-persistent в системе на базе Debian текущие правила будут сохранены либо в /etc/iptables/rules.v4, либо в /etc/iptables/rules.v6. Чтобы добавить новые правила, введите следующую команду:
sudo iptables-save > /etc/iptables/rules.v4
ИЛИ
sudo iptables-save > /etc/iptables/rules.v6
Для тех, кто использует дистрибутивы Linux на основе RPM, все немного по-другому. Пакет называется iptables-services, а файлы сохранения — /etc/sysconfig/iptables и /etc/sysconfig/ip6tables.
В дистрибутивах на основе RPM для портов IPv6 также используется другая команда. Сохранение ваших правил выполняется с помощью одной из этих двух команд:
sudo iptables-save > /etc/sysconfig/iptables sudo ip6tables-save > /etc/sysconfig/iptables
Обязательно следите за использованием порта
Со временем потребности вашего сервера могут измениться. Точно так же, как вы должны быть в курсе учетных записей пользователей на вашем компьютере с Linux, вы также должны регулярно проверять свои открытые порты. Закройте все открытые порты, которые больше не нужны. Наряду с регулярной сменой пароля это хорошая практика безопасности, которая поможет вам избежать вторжений в систему и эксплойтов безопасности.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)