- Home »

Открытие порта в Linux — Разрешение входящих подключений
В этой статье разберёмся, как открыть порт в Linux и разрешить входящие подключения. Почему это важно? Потому что без открытых портов ваш сервер — как квартира без дверей: вроде бы стены есть, но попасть внутрь невозможно. Открытие портов — базовая, но критически важная задача для любого, кто настраивает сервер под свои нужды: будь то веб-сервер, игровая площадка, VPN или что-то ещё. Здесь не будет воды и заумных терминов — только практические советы, реальные кейсы и рабочие команды. Если вы хотите быстро поднять сервис и не словить при этом головную боль — читайте дальше.
Как это работает?
В Linux (и вообще в сетях) порт — это виртуальная точка, через которую приложения принимают или отправляют данные. Например, веб-сервер слушает порт 80 (HTTP) или 443 (HTTPS), SSH — 22, а Minecraft — 25565. Но даже если приложение слушает порт, это не значит, что к нему можно подключиться извне. Всё решает файрвол — встроенный или сторонний. Он фильтрует трафик, разрешая или запрещая подключения по определённым портам и протоколам.
В Linux чаще всего встречаются такие файрволы:
- iptables — старый, но до сих пор рабочий инструмент. Гибкий, мощный, но не самый дружелюбный к новичкам.
- firewalld — современная надстройка над iptables/nftables, с более простым синтаксисом и зонами безопасности.
- ufw (Uncomplicated Firewall) — максимально простой интерфейс для iptables, часто встречается в Ubuntu.
- nftables — новый стандарт, который постепенно вытесняет iptables.
Суть одна: чтобы разрешить входящие подключения, нужно открыть нужный порт в файрволе. Но нюансы есть — и о них ниже.
Как быстро и просто всё настроить?
Покажу на трёх популярных инструментах: ufw, firewalld и iptables. Выбирайте тот, который уже стоит на вашем сервере (или который проще освоить).
UFW (Uncomplicated Firewall)
Идеален для Ubuntu и Debian. Всё просто:
# Включить ufw (если ещё не включён)
sudo ufw enable
# Открыть порт 8080 для TCP
sudo ufw allow 8080/tcp
# Открыть диапазон портов (например, 10000-10100)
sudo ufw allow 10000:10100/tcp
# Проверить статус и открытые порты
sudo ufw status verbose
Если нужно разрешить только определённый IP:
sudo ufw allow from 203.0.113.5 to any port 22 proto tcp
UFW — отличный выбор для быстрого старта. Но если нужна гибкость — смотрим дальше.
firewalld
Часто встречается в CentOS, Fedora, RHEL. Управляется через firewall-cmd
:
# Проверить, активен ли firewalld
sudo firewall-cmd --state
# Открыть порт 3306 (MySQL) навсегда
sudo firewall-cmd --permanent --add-port=3306/tcp
# Применить изменения
sudo firewall-cmd --reload
# Посмотреть открытые порты
sudo firewall-cmd --list-ports
Можно работать с зонами (например, разрешить порт только для определённой сети):
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewalld гибче, чем UFW, и отлично подходит для сложных сценариев.
iptables
Старый, но до сих пор незаменимый инструмент для продвинутых пользователей:
# Открыть порт 8080 для TCP
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# Сохранить правила (для разных дистрибутивов по-разному)
sudo iptables-save > /etc/iptables/rules.v4
# Посмотреть текущие правила
sudo iptables -L -n -v
Для временных тестов iptables хорош, но для постоянной работы лучше автоматизировать сохранение правил или использовать более современные инструменты.
Примеры, схемы, практические советы
Сценарий | Что делать | Рекомендации | Потенциальные проблемы |
---|---|---|---|
Открыть порт для веб-сервера (80/443) | Разрешить порты 80 и 443 для TCP | Используйте ufw/firewalld для простоты | Не забыть про HTTPS! Открывать только нужные порты |
SSH доступ с определённого IP | Разрешить порт 22 только для своего IP | Снижает риск взлома | Потеряете доступ, если IP сменится |
Открыть порт для игры/сервиса | Разрешить нужный порт (например, 25565 для Minecraft) | Проверьте, что сервис слушает порт | Не открывайте порты “на авось” — только нужные |
Открыть диапазон портов | Разрешить диапазон (например, 10000-10100) | Используйте только при необходимости | Чем больше портов открыто — тем выше риск |
Положительный кейс
Вы подняли сервер на Ubuntu, установили Nginx, открыли 80/443 через ufw. Всё работает, сайт доступен, файрвол блокирует лишнее. Безопасно, быстро, удобно.
Отрицательный кейс
Открыли все порты командой sudo ufw allow 1:65535/tcp
. Через неделю сервер оказался в ботнете — злоумышленники нашли открытый сервис с уязвимостью. Итог: переустановка системы, потеря данных, минус репутация.
Команды для разных задач
Вот шпаргалка для самых частых сценариев:
- Открыть порт 8080 для TCP:
# ufw
sudo ufw allow 8080/tcp# firewalld
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload# iptables
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
- Открыть порт только для определённого IP:
# ufw
sudo ufw allow from 203.0.113.5 to any port 22 proto tcp# firewalld
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload# iptables
sudo iptables -A INPUT -p tcp -s 203.0.113.5 --dport 22 -j ACCEPT
- Проверить, слушает ли порт приложение:
sudo netstat -tulnp | grep 8080
# или
sudo ss -tulnp | grep 8080
- Проверить открытость порта снаружи:
# С другого сервера
nc -vz your-server-ip 8080
# или
telnet your-server-ip 8080
Похожие решения, программы и утилиты
- nftables — современный инструмент, который заменяет iptables. Если начинаете с нуля — стоит обратить внимание.
- fail2ban — не открывает порты, но защищает от брутфорса, блокируя IP после неудачных попыток входа.
- Shorewall — ещё одна надстройка над iptables, для сложных сценариев.
- pf — файрвол из BSD мира, но встречается и в Linux (например, в Alpine).
Статистика и сравнение
Инструмент | Простота | Гибкость | Поддержка | Автоматизация |
---|---|---|---|---|
ufw | 5/5 | 3/5 | Ubuntu/Debian | Легко скриптовать |
firewalld | 4/5 | 5/5 | CentOS/Fedora/RHEL | API, зоны, скрипты |
iptables | 2/5 | 5/5 | Везде | Максимум гибкости, но сложнее |
nftables | 3/5 | 5/5 | Современные дистрибутивы | Гибко, но требует изучения |
Интересные факты и нестандартные способы использования
- Можно открывать порты только на определённый промежуток времени — например, через cron или systemd-timer. Это удобно для временного доступа (например, на время деплоя).
- Файрвол можно использовать для ограничения скорости (rate limiting) — например, чтобы не дать одному IP заспамить ваш сервис.
- С помощью iptables/nftables можно делать NAT, пробрасывать порты, строить сложные схемы маршрутизации — не только фильтровать трафик.
- firewalld поддерживает “зоны” — можно открыть порт только для внутренней сети, а для всех остальных оставить закрытым.
- В некоторых облаках (AWS, Google Cloud, Yandex Cloud) есть свои сетевые ACL — не забудьте открыть порт и там!
Новые возможности: автоматизация и скрипты
Открытие портов — отличная точка для автоматизации. Например:
- Скрипты деплоя могут автоматически открывать нужные порты при установке новых сервисов.
- Можно интегрировать открытие портов с CI/CD — например, временно открывать порт для тестов, а потом закрывать.
- С помощью Ansible, SaltStack, Puppet, Chef можно управлять портами на сотнях серверов централизованно.
- firewalld и ufw поддерживают команды из скриптов — легко интегрировать в bash-скрипты или systemd-юниты.
Это экономит время, снижает риск ошибок и делает инфраструктуру более предсказуемой.
Вывод — заключение и рекомендации
Открытие портов в Linux — задача простая, но критически важная. Без этого ни один сервис не будет доступен извне, а если открыть лишнего — можно нарваться на неприятности. Выбирайте инструмент под свои задачи: ufw — для быстрого старта, firewalld — для гибкости и сложных сценариев, iptables/nftables — для максимального контроля. Не забывайте про безопасность: открывайте только нужные порты, ограничивайте доступ по IP, используйте fail2ban и мониторинг.
Если вы только начинаете — попробуйте ufw или firewalld. Для автоматизации — интегрируйте команды в свои скрипты и CI/CD. Не забывайте тестировать открытость портов снаружи, чтобы убедиться, что всё работает как надо.
Где пригодится? На любом сервере — от домашнего Raspberry Pi до продакшн-инфраструктуры. Хотите попробовать на практике? Закажите VPS или выделенный сервер и настройте всё сами — это лучший способ научиться.
Официальные ресурсы для углубления:
Пробуйте, экспериментируйте, автоматизируйте — и пусть ваши сервисы будут доступны только тем, кому нужно!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.