Skip to content

apchhi/torsocks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

🛡️ Tor Setup on Fedora (with obfs4 Bridges)

Полноценный инженерный гайд по установке, настройке и отладке Tor + obfs4 на Fedora.
Подходит для обхода DPI, жёстких блокировок и нестабильных сетей.


📚 Содержание

  • Overview
  • Установка
  • Запуск Tor
  • Настройка bridges
  • Минимальный torrc
  • Синхронизация времени
  • Перезапуск
  • Диагностика
  • Типичные ошибки
  • Использование
  • Архитектура
  • Полезные команды
  • Deep Debug
  • Custom systemd unit
  • License

📌 Overview

Tor с obfs4 позволяет:

  • обходить DPI и блокировки
  • скрывать факт использования Tor
  • работать в нестабильных сетях
  • использовать SOCKS5‑прокси для приложений

Архитектура:

flowchart LR
    A[Application] --> B[SOCKS5 9050]
    B --> C[Tor Client]
    C --> D[Tor Network]
    D --> E[Internet]
Loading

⚙️ 1. Установка

sudo dnf install tor torsocks obfs4proxy

Проверка:

tor --version
torsocks --version

🚀 2. Запуск Tor

sudo systemctl enable --now tor

Проверка статуса:

systemctl status tor

🔐 3. Настройка bridges (obfs4)

Редактируем конфигурацию:

sudo nano /etc/tor/torrc

📄 Минимальный torrc

UseBridges 1
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Bridge obfs4 <BRIDGE_1>
Bridge obfs4 <BRIDGE_2>
Bridge obfs4 <BRIDGE_3>
Bridge obfs4 <BRIDGE_4>
Bridge obfs4 <BRIDGE_5>

SocksPort 9050

Важно:

  • Используйте 5–8 мостов
  • Копируйте строки без изменений
  • Удаляйте нестабильные / мёртвые мосты

⏱️ 4. Синхронизация времени (критично)

Tor зависит от корректного времени.

Проверка:

timedatectl status

Ожидаемый результат:

System clock synchronized: yes
NTP service: active

Если нет:

sudo timedatectl set-ntp true

🔄 5. Перезапуск Tor

sudo systemctl restart tor

🔍 6. Диагностика

Онлайн‑лог:

journalctl -u tor -f

Нормальный запуск:

Bootstrapped 10%
Bootstrapped 25%
Bootstrapped 75%
Bootstrapped 100% (done)

❌ Частые ошибки

🟥 general SOCKS server failure

Причина: проблемный / мёртвый bridge
Решение: удалить или заменить соответствующий Bridge в torrc


🟥 Consensus is too old

Причина: устаревший bridge / нет доступа к директори‑серверам
Решение: обновить список мостов, проверить сеть


🟥 No circuits are opened

Причина: мало мостов или они нерабочие
Решение: добавить 5–8 свежих obfs4‑мостов


🟥 system clock jumped

Причина: проблема с временем
Решение: включить NTP, проверить timedatectl


🌐 7. Использование

Через torsocks

torsocks curl https://check.torproject.org

Через SOCKS5 напрямую

curl --proxy socks5h://127.0.0.1:9050 https://api.ipify.org

🧠 8. Как это работает

flowchart LR
    App[Application] --> S[SOCKS5 9050]
    S --> T[Tor Client]
    T --> N[Tor Network]
    N --> I[Internet]
Loading

🧩 9. Архитектура (рекомендуемая)

flowchart TD
    C[clean profile] -->|direct| Internet
    D[dirty profile] -->|proxy / VPN| Internet
    A[anonymous profile] -->|Tor| TorNetwork
Loading

🧹 10. Полезные команды

journalctl -u tor -f
systemctl restart tor
torsocks curl https://google.com

🛠 Deep Debug

Проверка транспорта obfs4

sudo -u tor /usr/bin/obfs4proxy -enableLogging -logLevel DEBUG

Проверка доступности bridge по IP/порту

torsocks telnet <bridgeip> <bridgeport>

или:

torsocks nc -v <bridgeip> <bridgeport>

Проверка DNS‑утечек

torsocks dig example.com

Анализ bootstrap‑этапов

grep -i "Bootstrapped" /var/log/tor/log

(путь к логу может отличаться — см. Log в torrc)

Проверка SELinux (если включён)

sudo ausearch -m avc -ts recent

⚙ Custom systemd unit для отдельного профиля Tor

Например, отдельный анонимный профиль tor-anon с собственным torrc.

Создаём юнит:

sudo nano /etc/systemd/system/tor@anon.service

Содержимое:

[Unit]
Description=Tor Anon Instance
After=network.target

[Service]
User=tor
Group=tor
Type=simple
ExecStart=/usr/bin/tor -f /etc/tor/torrc-anon
Restart=on-failure

[Install]
WantedBy=multi-user.target

Пример отдельного конфига:

sudo nano /etc/tor/torrc-anon
UseBridges 1
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Bridge obfs4 <BRIDGE_1>
Bridge obfs4 <BRIDGE_2>
Bridge obfs4 <BRIDGE_3>
Bridge obfs4 <BRIDGE_4>
Bridge obfs4 <BRIDGE_5>

SocksPort 0.0.0.0:9150
Log notice file /var/log/tor/tor-anon.log

Активируем профиль:

sudo systemctl daemon-reload
sudo systemctl enable --now tor@anon
systemctl status tor@anon

📌 Итог

  • ✔ Tor установлен
  • ✔ obfs4 bridges настроены
  • ✔ SOCKS5 доступен на 9050 (и опционально 9150 для профиля anon)
  • ✔ обход DPI работает

🚀 Дополнительно

Можно улучшить:

  • 🔗 Tor через VPN/Xray
  • 🔄 автообновление bridges
  • 🔐 интеграция с Firejail
  • ⚙ split routing

п.с. чтобы пустить приложение по порту вручную podman build --no-cache -t amnezia-proxy .

podman build --no-cache \
  --build-arg http_proxy=socks5h://127.0.0.1:9050 \
  --build-arg https_proxy=socks5h://127.0.0.1:9050 \
  -t amnezia-proxy .

MIT

About

Service TOR (torsocks) for Linux(Fedora)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors