Ответ
Port Forwarding (проброс портов) — это сетевая техника перенаправления трафика, поступающего на определенный порт и IP-адрес одного сетевого интерфейса, на другой порт и, возможно, другой IP-адрес.
В контексте DevOps и администрирования он используется для двух основных целей:
1. Доступ к сервисам в изолированных сетях
Это наиболее частая задача для отладки и администрирования.
- Локальный проброс к Pod в Kubernetes:
kubectl port-forward pod/myapp-pod 8080:80 # Теперь локальный localhost:8080 перенаправляется на порт 80 внутри пода. - Проброс к сервису:
kubectl port-forward svc/my-service 5432:5432 # Позволяет подключиться к БД внутри кластера с локальной машины. - SSH туннелирование для доступа к внутренним ресурсам (бастион-хост):
ssh -L 3306:internal-db.prod:3306 user@bastion-host.example.com # Соединение с localhost:3306 будет зашифрованно перенаправлено через bastion-host на internal-db.prod:3306.
2. Настройка сетевой инфраструктуры (на уровне ОС или облака)
- Через iptables (Linux):
# Проброс порта 80 с публичного интерфейса на внутренний веб-сервер iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 10.0.1.5:8080 iptables -A FORWARD -p tcp -d 10.0.1.5 --dport 8080 -j ACCEPT - В облачных провайдерах: Правила брандмауэра и балансировщиков нагрузки (AWS Security Groups, GCP Firewall Rules) часто реализуют логику проброса портов для публичного доступа к приватным инстансам.
Важное предупреждение: Port Forwarding для доступа к продакшен-сервисам — это инструмент для отладки и аварийного доступа. Для постоянного доступа следует использовать VPN, приватные каналы (VPC Peering, PrivateLink) или балансировщики нагрузки, настроенные в соответствующей сети.