установка и настройка Tinyproxy на Ubuntu 24.04
Tinyproxy - lightweight HTTP proxy server с поддержкой HTTPS CONNECT tunneling и минимальным потреблением ресурсов.
Tinyproxy не является SOCKS proxy. Инструкция собиралась и проверялась на Ubuntu 24.04.
По итогу получаем:
- HTTP/HTTPS proxy server
- HTTP CONNECT tunneling
- systemd сервис
- автозапуск
- минимальное потребление ресурсов
Info
Tinyproxy подходит для:
- Telegram Desktop
- curl
- браузеров
- API запросов
- временного proxy доступа
00. подготовка сервера
Подключаемся:
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
Запрещаем root login:
sudo nano /etc/ssh/sshd_config
Меняем:
PermitRootLogin no
Перезапускаем SSH:
sudo systemctl restart ssh
01. подключение
ssh deployuser@123.45.67.89
sudo -i
02. установка Tinyproxy
apt install -y tinyproxy
03. настройка авторизации
Редактируем:
nano /etc/tinyproxy/tinyproxy.conf
Минимальный production-friendly пример:
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
Важно:
7777- порт proxy serverListen 0.0.0.0- слушать все интерфейсыmyuserиmypasswordзаменить на своиAllowограничивает доступ по IPDisableViaHeader Yesуменьшает disclosure proxy headersLogLevel Infoвключает predictable logging
Пример ограничения по IP:
Allow 1.2.3.4
Allow 5.6.7.0/24
Allow 10.0.0.0/8
Если авторизация не нужна - строку BasicAuth можно удалить.
Warning
- Proxy без авторизации рекомендуется использовать только вместе с ограничением доступа через
Allow. - Не оставляйте open proxy доступным всему интернету без необходимости.
04. запуск
systemctl enable --now tinyproxy
Проверяем:
systemctl status tinyproxy
05. firewall
Warning
Перед включением UFW убедитесь, что разрешен OpenSSH, иначе можно потерять SSH доступ.
ufw allow OpenSSH
ufw allow 7777/tcp
ufw enable
06. проверка порта
ss -lntp | grep :7777
07. проверка proxy
Пример proxy URL:
http://myuser:mypassword@123.45.67.89:7777
Проверка через curl:
curl -x http://myuser:mypassword@127.0.0.1:7777 https://ifconfig.me
08. использование в Telegram Desktop
Telegram Desktop поддерживает HTTP proxy.
Настройки:
Settings → Advanced → Connection type → Use custom proxy
Тип proxy:
HTTP
Заполняем:
Server: 123.45.67.89
Port: 7777
Username: myuser
Password: mypassword
09. диагностика
systemctl status tinyproxy
journalctl -u tinyproxy -n 50 --no-pager
tail -f /var/log/tinyproxy/tinyproxy.log
ss -lntp | grep :7777
10. как это работает
- Tinyproxy поднимает HTTP proxy server с поддержкой CONNECT tunneling
- HTTPS traffic проходит через HTTP CONNECT proxy
- Telegram Desktop умеет работать через HTTP proxy
- traffic маршрутизируется через ваш proxy server
Tinyproxy не предоставляет полноценный VPN и не шифрует traffic между client и proxy server.
Info
HTTP proxy видит destination hostnames и может видеть незашифрованный HTTP traffic.
Warning
Не используйте HTTP proxy для передачи чувствительных данных через незашифрованный HTTP.
полезные ссылки
Tinyproxy GitHub
https://github.com/tinyproxy/tinyproxy/
Tinyproxy Documentation
https://tinyproxy.github.io/