Ниже — практическое руководство «от выбора до запуска» собственного прокси‑сервера. Формат — общий + готовые команды/фрагменты для распространённых вариантов (HTTP/HTTPS forward‑proxy — Squid; обратный (reverse) proxy — Nginx). Перед началом определитесь с назначением: кэширование/ускорение, анонимизация (SOCKS5/HTTP), балансировка нагрузки (reverse proxy) и т. п. От этого зависят софт и настройки.
1) Выбор типа прокси и софта
- Forward proxy (клиент подключается, прокси делает запросы от своего имени): Squid (HTTP/HTTPS), 3proxy или Dante (SOCKS5), Shadowsocks/V2Ray (шифрованные туннели).
- Reverse proxy (между внешним трафиком и вашим внутренним приложением): Nginx, HAProxy, Caddy.
- Выбор места: VPS (Hetzner, DigitalOcean, AWS, и т. п.) или ваш сервер в локальной сети.
2) Базовые требования/подготовка
- ОС: обычно Linux (Ubuntu/Debian/CentOS).
- VPS: откройте нужные порты в панели провайдера.
- Обновление системы:
sudo apt update && sudo apt upgrade -y
3) Пример: быстрый forward HTTP/HTTPS прокси на Squid (Ubuntu)
Установка:
sudo apt install squid apache2-utils -y
Создание пользователей для basic аутентификации:
sudo htpasswd -c /etc/squid/passwd myuser
(введите пароль)
Простой конфиг (основные строки, редактировать /etc/squid/squid.conf):
# Порт
http_port 3128
# аутентификация
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm Proxy
acl authenticated proxy_auth REQUIRED
# локальная сеть (пример)
acl localnet src 192.168.0.0/16 10.0.0.0/8
# доступ: сначала разрешить локалке/аутентифицированным, затем запретить всё остальное
http_access allow localnet
http_access allow authenticated
http_access deny all
# логирование (по умолчанию)
access_log /var/log/squid/access.log
После правок перезапустите:
sudo systemctl restart squid
Проверка (с клиента):
curl -x http://myuser:password@IP_СЕРВЕРА:3128 https://example.com
Примечания:
- Поддержка HTTPS требует дополнительных настроек (CONNECT — обычно работает «как есть»). Для TLS‑терминации или перехвата (SSL Bump) нужны дополнительные настройки и понимание правовых/этических последствий.
- Ограничьте доступ ACL (по IP/аутентификации) — не открывайте прокси в «open» режиме!
4) Пример: обратный прокси с Nginx (TLS + proxy_pass)
Установка:
sudo apt install nginx -y
Простой конфиг /etc/nginx/sites-available/example:
server {
listen 80;
server_name example.com;
# редирект на HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Включите сайт, перезапустите nginx. Для получения сертификатов удобно использовать certbot:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
5) SOCKS5 (коротко)
- Dante или 3proxy — популярные реализации.
- Пример проверки после настройки:
curl --socks5-hostname IP:1080 https://ifconfig.me
6) Сеть/безопасность
- Firewall: закройте ненужные порты (ufw/iptables). Пример ufw:
sudo ufw allow OpenSSH
sudo ufw allow 3128/tcp # squid
sudo ufw enable
- fail2ban для защиты от брутфорса (особенно если есть веб‑интерфейсы).
- Логи: включите ротацию логов (logrotate), анализ (в случае прокси часто «access.log»).
- Шифрование: для обратного прокси используйте TLS (Let's Encrypt). Для forward прокси рассмотрите шифрованные туннели (OpenVPN, WireGuard, Shadowsocks) если нужно защитить трафик между клиентом и сервером.
- Аутентификация: используйте сильные пароли и/или ключи; при необходимости LDAP/Active Directory.
7) Производительность и устойчивость
- Настройте кеширование (Squid) для ускорения статических ресурсов.
- Ограничения по ресурсам: максимальное число подключений, таймауты, rate limiting.
- Мониторинг (Prometheus + Grafana, Netdata) и алерты.
- Резервные/балансировочные решения: HAProxy/Nginx + несколько бэкендов.
8) Тестирование и отладка
- curl с параметром --proxy / --socks5-hostname
- tcpdump / tshark для сниффинга трафика на сервере (только для отладки и на своих системах).
- просмотрите логи squid/nginx.
9) Правовые и этические аспекты
- Не делайте открытых (open) прокси — это риски злоупотребления и может привести к блокировке/VPS suspension или ответственности.
- Соблюдайте условия провайдера и законы вашей юрисдикции.
10) Ресурсы и документация
- Squid: http://www.squid-cache.org/ (документация, примеры конфигов)
- Nginx docs: https://nginx.org/
- Dante/3proxy: официальная документация и примеры конфигов
Если хотите, могу:
- Подготовить пошаговую инструкцию для конкретной ОС и провайдера (укажите Ubuntu/Debian/ CentOS, VPS провайдера).
- Подготовить готовый конфиг Squid с дополнительными ACL, логированием и rate limiting.
- Показать пример настроек для SOCKS5 (Dante/3proxy).
Напишите, какой вариант вам нужен (forward/ reverse/ SOCKS5), ОС и планируемое окружение — и я составлю конкретную инструкцию с командами и полным конфигом.