Перейти к содержанию

Tinyproxy на Ubuntu 24.04: установка и настройка HTTP-прокси

В этой статье рассмотрим установку и настройку Tinyproxy на Ubuntu 24.04.

Tinyproxy — небольшой HTTP-прокси-сервер с поддержкой HTTPS через метод CONNECT. Он потребляет минимум ресурсов и подходит для случаев, когда не требуется полноценный VPN или SOCKS-прокси.

Инструкция проверена на Ubuntu 24.04.

Что получится в результате

После выполнения всех шагов будут настроены:

  • HTTP-прокси;
  • поддержка HTTPS через CONNECT;
  • авторизация по логину и паролю;
  • ограничение доступа по IP-адресам;
  • автоматический запуск службы Tinyproxy.

Tinyproxy подходит для браузеров, curl и большинства программ, поддерживающих HTTP-прокси.

Tinyproxy не является SOCKS-прокси и не заменяет VPN.


1. Подготавливаем сервер

В примерах используется сервер с адресом 123.45.67.89, замените его на IP-адрес своего сервера.

Подключаемся к серверу под пользователем root:

ssh root@123.45.67.89

Создаём отдельного пользователя:

adduser deployuser

Добавляем его в группу sudo:

usermod -aG sudo deployuser

Проверяем вход:

ssh deployuser@123.45.67.89

Обновляем систему:

sudo apt update && sudo apt full-upgrade -y

Перезагружаем сервер:

sudo reboot

Дальнейшую настройку будем выполнять уже под пользователем deployuser.

Чтобы запретить вход по SSH под пользователем root, открываем файл:

sudo nano /etc/ssh/sshd_config

Изменяем параметр:

PermitRootLogin no

После сохранения файла перезапускаем SSH:

sudo systemctl restart ssh

Перед отключением входа под root обязательно убедитесь, что пользователь deployuser может выполнять команды через sudo.


2. Устанавливаем Tinyproxy

Подключаемся к серверу:

ssh deployuser@123.45.67.89

Получаем права root:

sudo -i

Устанавливаем Tinyproxy:

apt install -y tinyproxy

После установки стоит запомнить два пути:

/etc/tinyproxy/tinyproxy.conf

Основной конфигурационный файл.

/var/log/tinyproxy/

Журналы работы Tinyproxy.


3. Настраиваем Tinyproxy

Открываем конфигурационный файл:

nano /etc/tinyproxy/tinyproxy.conf

Минимальная рабочая конфигурация:

User tinyproxy
Group tinyproxy

Port 7777
Listen 0.0.0.0

Timeout 600

DefaultErrorFile "/usr/share/tinyproxy/default.html"
StatFile "/usr/share/tinyproxy/stats.html"
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info

PidFile "/run/tinyproxy/tinyproxy.pid"

MaxClients 100

DisableViaHeader Yes

BasicAuth myuser mypassword

Allow 1.2.3.4

Перед сохранением замените:

myuser
mypassword
1.2.3.4

на свои значения.

Наиболее важные параметры:

  • Port — порт, на котором работает прокси;
  • Listen — сетевой интерфейс, на котором Tinyproxy принимает подключения;
  • BasicAuth — имя пользователя и пароль;
  • Allow — список IP-адресов, которым разрешено подключение.

Можно разрешить сразу несколько адресов или подсетей:

Allow 1.2.3.4
Allow 5.6.7.0/24
Allow 10.0.0.0/8

Если авторизация не требуется, строку BasicAuth можно удалить.

В этом случае обязательно ограничьте доступ по IP-адресам с помощью параметра Allow.

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


4. Запускаем Tinyproxy

Включаем автоматический запуск службы и сразу запускаем её:

systemctl enable --now tinyproxy

Проверяем состояние:

systemctl status tinyproxy

Служба должна перейти в состояние active (running). Если этого не произошло, причину обычно можно увидеть в выводе команды systemctl status или в журнале Tinyproxy.