Как открыть порт на сервере с Linux?

«Как открыть порт на сервере с Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Открытие порта в Linux — это настройка правил брандмауэра для разрешения входящего трафика. Способ зависит от используемого демона.

1. Используя firewalld (RHEL, CentOS, Fedora):

# Добавить правило для порта 8080/tcp
sudo firewall-cmd --zone=public --add-port=8080/tcp
# Сделать правило постоянным (сохранить после перезагрузки)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
# Перезагрузить конфигурацию
sudo firewall-cmd --reload

2. Используя ufw (Ubuntu, Debian):

# Разрешить порт 8080 по TCP
sudo ufw allow 8080/tcp
# Включить брандмауэр (если еще не включен)
sudo ufw enable

3. Используя iptables напрямую (универсальный, но низкоуровневый способ):

# Разрешить входящие соединения на порт 8080
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# Сохранить правила (способ зависит от дистрибутива)
# Для RHEL/CentOS: sudo service iptables save
# Для других: sudo iptables-save > /etc/iptables/rules.v4

Критически важные шаги после настройки брандмауэра:

  1. Убедитесь, что служба слушает на нужном порту:
    sudo ss -tulnp | grep :8080
  2. Проверьте доступность порта извне:
    # С другой машины
    nc -zv <IP_СЕРВЕРА> 8080
  3. Не забудьте про правила на уровне облачного провайдера (Security Groups в AWS, Firewall Rules в GCP и т.д.). Они имеют приоритет над настройками на сервере.