Ответ на пост «Делаем актуальный TOR Proxy socks5 на Raspberry + NYX на момент установки с комментариями и настройкой Chrome для работы с .Onion и смены IP»1
Дорогой падаван,
уж если пишите на нетехнический форум, где 99% пользователей не имеет итишного образования, то пишите проще, иначе те-же 99% в ужасе разбежиться уже после прочтения первых 10 строчек инструкции.
Вот скрипт, который надобно запустить и который делает всю работу.
В твоей инструкции есть неточности (не спецам не интересно), которые я исправил.
Написано мной, правлено АИ
К сожалению тега кода нет, поэтому придется как есть. Копируем код снизу и копируем в файл на вахсем расбери, например setup_tor.sh
Затем запустим его вот так:
sudo bash setup_tor.sh
Затем переходим в браузер. Все описанное выше запустило нам прокси тор, можно ставить прокси в браузер и далее по инструкции из первоисточника...
Если есть комментарии - пишите.
П.С. @BannedMi. Не возражаю, чтобы ты добавил скрипт в свой GitHub.
#!/bin/bash
# =============================================================
# TOR SOCKS5 Proxy + obfs4 Setup для Raspberry Pi
# Debian Bullseye / Bookworm (armhf / arm64)
# =============================================================
set -euo pipefail
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
BOLD='\033[1m'; NC='\033[0m'
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
error() { echo -e "${RED}[ERROR]${NC} $*"; exit 1; }
# --- Проверка root ---
[[ $EUID -eq 0 ]] || error "Запустите от root: sudo bash $0"
# --- Определяем codename и архитектуру ---
CODENAME=$(lsb_release -cs)
ARCH=$(dpkg --print-architecture)
info "Дистрибутив: ${BOLD}${CODENAME}${NC} | Архитектура: ${BOLD}${ARCH}${NC}"
# --- Проверка поддерживаемого codename ---
case "$CODENAME" in
bullseye|bookworm|buster) ;;
*) warn "Codename '$CODENAME' не проверялся. Продолжаем, но возможны проблемы." ;;
esac
# --- Определяем локальный IP ---
LOCAL_IP=$(hostname -I | awk '{print $1}')
info "Обнаружен IP Raspberry Pi: ${BOLD}${LOCAL_IP}${NC}"
read -rp "Использовать этот IP для SOCKSPort? [Y/n]: " ans
if [[ "${ans,,}" == "n" ]]; then
read -rp "Введите IP Raspberry Pi в локальной сети: " LOCAL_IP
fi
# --- Подсеть (автоматически /24) ---
SUBNET=$(echo "$LOCAL_IP" | cut -d. -f1-3).0/24
info "Подсеть для SOCKSPolicy: ${BOLD}${SUBNET}${NC}"
# --- Порт SOCKS5 ---
SOCKS_PORT=9977
read -rp "Порт SOCKS5 [по умолчанию ${SOCKS_PORT}]: " port_input
[[ -n "$port_input" ]] && SOCKS_PORT="$port_input"
# --- Часовой пояс ---
read -rp "Установить временную зону Europe/Moscow? [Y/n]: " tz_ans
[[ "${tz_ans,,}" != "n" ]] && timedatectl set-timezone Europe/Moscow && info "Таймзона: Europe/Moscow"
# =============================================================
# 1. Репозиторий Tor
# =============================================================
info "Добавление официального репозитория Tor..."
cat > /etc/apt/sources.list.d/tor.list << EOF
deb [arch=${ARCH} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${CODENAME} main
deb-src [arch=${ARCH} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${CODENAME} main
EOF
# GPG ключ
info "Загрузка GPG ключа Tor Project..."
| gpg --dearmor \
| tee /usr/share/keyrings/tor-archive-keyring.gpg > /dev/null
info "GPG ключ сохранён."
# =============================================================
# 2. Обновление и установка пакетов
# =============================================================
info "Обновление системы..."
apt-get update -y
apt-get upgrade -y
apt-get install -f -y
info "Установка пакетов: apt-transport-https, obfs4proxy, nyx, tor..."
apt-get install -y \
apt-transport-https \
obfs4proxy \
nyx \
tor \
deb.torproject.org-keyring
# =============================================================
# 3. Systemd drop-in (НЕ правим /lib/systemd)
# =============================================================
info "Настройка автозапуска Tor после сети..."
mkdir -p /etc/systemd/system/tor.service.d/
cat > /etc/systemd/system/tor.service.d/override.conf << 'EOF'
[Unit]
Wants=network-online.target
After=network-online.target
EOF
systemctl daemon-reload
# =============================================================
# 4. Сбор obfs4 bridges
# =============================================================
echo ""
echo -e "${BOLD}${YELLOW}=== ПОЛУЧЕНИЕ obfs4 BRIDGES ===${NC}"
echo "Получите бриджи одним из способов:"
echo " Telegram-бот : https://t.me/GetBridgesBot"
echo " Веб-сайт : https://bridges.torproject.org/bridges/?transport=obfs4"
echo ""
echo "Вставляйте строки по одной (без префикса 'Bridge' — скрипт добавит сам)."
echo "Для завершения введите пустую строку."
echo ""
BRIDGES_BLOCK=""
while true; do
read -rp "Bridge> " bridge_line
[[ -z "$bridge_line" ]] && break
# Убираем случайный префикс Bridge/bridge если есть
bridge_line=$(echo "$bridge_line" | sed 's/^[Bb]ridge[[:space:]]*//')
BRIDGES_BLOCK="${BRIDGES_BLOCK}Bridge ${bridge_line}\n"
done
[[ -z "$BRIDGES_BLOCK" ]] && warn "Бриджи не введены! Tor может не подключиться."
# =============================================================
# 5. Запись /etc/tor/torrc
# =============================================================
BACKUP="/etc/tor/torrc.backup.$(date +%Y%m%d_%H%M%S)"
info "Резервная копия старого torrc: ${BACKUP}"
cp /etc/tor/torrc "$BACKUP"
info "Запись /etc/tor/torrc..."
cat > /etc/tor/torrc << EOF
## === TOR SOCKS5 Proxy ===========================================
SOCKSPort ${LOCAL_IP}:${SOCKS_PORT}
SOCKSPolicy accept ${SUBNET}
SOCKSPolicy reject *
RunAsDaemon 1
DataDirectory /var/lib/tor
StrictNodes 1
## === obfs4 Bridges ==============================================
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy
UseBridges 1
## Исключаем RU, UA, BY, AM, KG из выходных и промежуточных нод
ExcludeExitNodes {RU},{UA},{AM},{KG},{BY}
ExcludeNodes {RU},{UA},{AM},{KG},{BY}
## Вставлены автоматически:
$(printf "%b" "$BRIDGES_BLOCK")
EOF
# =============================================================
# 6. Запуск и проверка
# =============================================================
info "Включение и перезапуск Tor..."
systemctl enable tor
systemctl restart tor
echo ""
echo -e "${BOLD}${GREEN}=== ГОТОВО ===${NC}"
echo -e "Ваш SOCKS5 прокси: ${BOLD}${LOCAL_IP}:${SOCKS_PORT}${NC}"
echo ""
echo "Статус сервиса:"
systemctl status tor --no-pager -l || true
echo ""
echo -e "${YELLOW}Следить за подключением (ищите 'Bootstrapped 100%'):${NC}"
echo " journalctl -u tor@default.service -f"
echo ""
echo -e "${YELLOW}Мониторинг (NYX):${NC}"
echo " nyx"














