Свой прокси-сервер на VPS: настройка Squid и 3proxy

Сети и VPN
Свой прокси-сервер на VPS: настройка Squid и 3proxy

Свой прокси-сервер на VPS — это личный выходной IP-адрес, который не делится с тысячами чужих пользователей, не попадает в чёрные списки пачками и стоит дешевле любой платной подписки на прокси. Сценарии типичные: направить трафик браузера через сервер в другой стране, ходить в интернет с постоянного адреса из публичного Wi-Fi, дать парсеру или боту стабильный IP, открыть доступ к своим сервисам без публикации их в интернет. В этой инструкции поднимем свой прокси на Ubuntu 24.04 LTS двумя способами: полновесный Squid с авторизацией по паролю и лёгкий 3proxy, который умеет сразу HTTP и SOCKS5.

Прокси или VPN: в чём разница

Прокси и VPN решают похожие задачи по-разному. VPN (например, OpenVPN или WireGuard) заворачивает и шифрует весь трафик устройства. Прокси прописывается в конкретном приложении и работает только для него.

КритерийПроксиVPN
Область действияОтдельное приложениеВсё устройство
Шифрование туннеляНет (HTTPS остаётся HTTPS)Да, весь трафик
Клиентская программаНе нужнаНужна
Накладные расходыМинимальныеЗаметнее (шифрование)
Типовая задачаБраузер, парсер, бот, отдельный сервисЗащита всего трафика в публичном Wi-Fi

Для ноутбука в чужом Wi-Fi надёжнее VPN. Для «пустить один браузер или скрипт через сервер» прокси проще и легче. Хорошая новость: на одном VPS спокойно живёт и то и другое.

Какой сервер нужен под прокси

Прокси — одна из самых лёгких серверных задач: 3proxy обходится десятками мегабайт RAM, Squid без кеша — 100–200 МБ. Решают другие параметры:

  • безлимитный трафик — весь ваш серфинг и загрузки пойдут через сервер;
  • стабильный канал — 100 Мбит/с хватает с большим запасом;
  • постоянный IP и приличная «репутация» адреса.

Под личный прокси у Cheap-Host есть NAT VPS в Германии от 59 ₽/мес; оптимален NAT Base за 99 ₽/мес (1 vCPU, 2 ГБ RAM, 15 ГБ NVMe, безлимитный трафик). У NAT-тарифов общий IPv4 и диапазон из 999 проброшенных портов — прокси это никак не мешает, нужно лишь выбрать порт из своего диапазона (подробности ниже). Если нужен выделенный IPv4 в Москве — тариф Start за 450 ₽/мес. В обоих случаях сервер разворачивается за 45–60 секунд с моментальной выдачей IP и SSH. Что вообще такое NAT-тарифы и почему они настолько дешевле — разобрали в статье «Что такое NAT VPS».

Вариант 1. Squid: классический HTTP-прокси с авторизацией

Squid — «комбайн»: кеширование, гибкие ACL, ограничения по времени и доменам. Ставится из репозитория Ubuntu 24.04 одной командой:

sudo apt update
sudo apt install -y squid apache2-utils

Пакет apache2-utils нужен ради утилиты htpasswd — ею создадим файл с логином и паролем:

sudo htpasswd -c /etc/squid/passwd proxyuser

Сохраните оригинальный конфиг и создайте свой минимальный:

sudo mv /etc/squid/squid.conf /etc/squid/squid.conf.orig
sudo nano /etc/squid/squid.conf

Содержимое /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
auth_param basic credentialsttl 2 hours
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
via off
forwarded_for delete
cache deny all
access_log /var/log/squid/access.log

Что здесь важно: http_access deny all в конце запрещает всё, что не разрешено явно, — без авторизации прокси не отвечает. Директивы via off и forwarded_for delete убирают заголовки, по которым сайты видят, что вы за прокси, и ваш реальный IP. cache deny all отключает кеширование — для личного прокси оно только тратит диск. Перезапускаем и включаем автозагрузку:

sudo systemctl restart squid
sudo systemctl enable squid

Вариант 2. 3proxy: лёгкий HTTP + SOCKS5

3proxy — крошечный прокси-сервер, который в Ubuntu 24.04 тоже ставится из стандартного репозитория:

sudo apt install -y 3proxy

Конфиг лежит в /etc/3proxy/3proxy.cfg. Замените его содержимое на такое:

nserver 1.1.1.1
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
log /var/log/3proxy/3proxy.log D
rotate 7
auth strong
users proxyuser:CL:СложныйПароль123
allow proxyuser
maxconn 200
proxy -n -a -p3128
socks -p1080

Разбор ключевых строк:

  • auth strong — доступ только по логину и паролю;
  • users proxyuser:CL:... — учётная запись (CL означает пароль открытым текстом в конфиге, поэтому chmod 600 на файл обязателен);
  • proxy -n -a -p3128 — HTTP-прокси на порту 3128, анонимный режим без выдачи вашего IP;
  • socks -p1080 — SOCKS5-прокси на порту 1080: в отличие от HTTP-прокси, через SOCKS5 ходит почти любой TCP-трафик, включая мессенджеры.
sudo chmod 600 /etc/3proxy/3proxy.cfg
sudo systemctl restart 3proxy
sudo systemctl enable 3proxy

Один 3proxy закрывает оба сценария — браузер через HTTP-прокси и приложения через SOCKS5, — при этом расходует меньше ресурсов, чем вкладка браузера.

Файрвол и нестандартные порты на NAT VPS

Порты прокси нужно открыть в файрволе. С UFW (как его настроить с нуля — в инструкции по UFW):

sudo ufw allow 3128/tcp
sudo ufw allow 1080/tcp
sudo ufw reload

На NAT VPS есть особенность: снаружи доступны только порты из вашего личного диапазона (999 TCP/UDP-портов плюс отдельный SSH-порт). Стандартные 3128 и 1080 туда не входят, поэтому прокси нужно повесить на свои порты:

  1. посмотрите диапазон в панели — допустим, 20500–21498;
  2. для Squid замените http_port 3128 на http_port 20510;
  3. для 3proxy: proxy -n -a -p20510 и socks -p20511;
  4. откройте эти порты в UFW и перезапустите службу.

Клиенты при этом указывают общий IP сервера и ваш порт — с точки зрения браузера ничего необычного. Дополнительный плюс: нестандартный порт почти не видят массовые сканеры открытых прокси. Как вообще устроен проброс на NAT-тарифах — в статье «Проброс портов на NAT VPS».

Проверка работы

Самый быстрый способ — curl с локального компьютера (в Windows команда доступна в PowerShell):

curl -x http://proxyuser:пароль@IP_СЕРВЕРА:3128 https://ifconfig.me
curl -x socks5://proxyuser:пароль@IP_СЕРВЕРА:1080 https://ifconfig.me

Обе команды должны вернуть IP вашего VPS. После этого прописывайте прокси где нужно: в настройках сети браузера или в расширении типа FoxyProxy, в настройках Telegram (SOCKS5), в коде парсера через параметр proxies. Если ответа нет — проверьте, что служба запущена (systemctl status squid или 3proxy), порт открыт в UFW, а на NAT VPS порт взят из вашего диапазона.

Безопасность: три правила владельца прокси

  • Никогда не держите прокси открытым. Без авторизации его найдут сканеры за часы, и через ваш IP пойдёт чужой спам и перебор паролей — со всеми последствиями для репутации адреса.
  • Ограничьте доступ по IP, если он у вас статический. В Squid: acl myip src 203.0.113.7 и http_access allow myip вместо парольной ACL. В 3proxy: allow proxyuser * 203.0.113.7.
  • Смотрите логи. /var/log/squid/access.log и /var/log/3proxy/3proxy.log покажут, кто и куда ходит через сервер. Заодно настройте fail2ban и SSH-ключи — базовый чек-лист тот же, что для любого сервера.

FAQ

Что выбрать — Squid или 3proxy?

Для личного прокси на 1–5 пользователей удобнее 3proxy: несколько мегабайт памяти, HTTP и SOCKS5 из коробки. Squid берите, когда нужны кеширование, сложные ACL, ограничения по доменам и времени.

Чем прокси отличается от VPN?

VPN шифрует весь трафик устройства, прокси работает для конкретных приложений. Прокси легче и не требует клиента, но сам туннель не шифрует (HTTPS-сайты остаются зашифрованными end-to-end). Для чужого Wi-Fi — VPN, для точечных задач — прокси.

Заработает ли прокси на NAT VPS с общим IP?

Да, это одна из типовых задач NAT VPS. Повесьте Squid или 3proxy на порт из вашего диапазона 999 проброшенных портов — и указывайте клиентам общий IP сервера с этим портом.

Можно ли оставить прокси без пароля?

Нет. Открытый прокси быстро находят и используют для спама и атак, после чего IP попадает в чёрные списки. Минимум — авторизация по паролю или белый список ваших IP.

Сколько ресурсов нужно прокси-серверу?

Минимум: 3proxy — десятки мегабайт RAM, Squid без кеша — 100–200 МБ. 1 vCPU и 1–2 ГБ RAM хватает для личного использования и небольшого парсинга; важнее безлимитный трафик.

Вывод

Свой прокси-сервер на VPS настраивается за 20–30 минут: Squid — если нужны кеш и гибкие правила доступа, 3proxy — если хочется максимально лёгкий HTTP + SOCKS5. Обязательные пункты — авторизация, файрвол и, на NAT-тарифах, порт из своего диапазона. Если для этой задачи нужен сервер — у Cheap-Host тариф NAT Base от 99 ₽/мес: NVMe, KVM, безлимитный трафик и выдача за минуту, а под выделенный IPv4 — Start от 450 ₽/мес. Тарифы и заказ — на cheap-host.onl.

Читайте также