# --- Proxy Settings --- # Переменные для прокси по умолчанию (если нужно, чтобы он был включен всегда) # export HTTP_PROXY="http://127.0.0.1:10809" # export HTTPS_PROXY="http://127.0.0.1:10809" # --- WSL Host Update --- update_hproxy() { echo "🔄 Обновление IP-адреса для hproxy.local..." local host_ip="" local wslconfig=$(ls /mnt/c/Users/*/.wslconfig 2>/dev/null | head -n 1) local win_hosts="/mnt/c/Windows/System32/drivers/etc/hosts" # Проверяем наличие параметра networkingMode=mirror в конфиге Windows if [ -f "$wslconfig" ] && grep -qiE '^[[:space:]]*networkingMode[[:space:]]*=[[:space:]]*mirror' "$wslconfig"; then echo "🔍 Обнаружен режим Mirror." # Читаем hosts из Windows if [ -f "$win_hosts" ] && grep -qiw "hproxy.local" "$win_hosts"; then # Извлекаем IP (первый столбец) и чистим от виндовых символов возврата каретки (\r) host_ip=$(grep -iw "hproxy.local" "$win_hosts" | awk '{print $1}' | tr -d '\r' | head -n 1) echo "📂 Взят IP из Windows hosts: $host_ip" else # Фолбэк на случай, если записи в Windows нет host_ip="127.0.0.1" echo "⚠️ Запись hproxy.local в Windows hosts не найдена, используем дефолтный $host_ip" fi else echo "🔍 Обнаружен режим NAT." # Формируем IP на лету из маршрута по умолчанию host_ip=$(ip route show default | awk '{print $3}') echo "🌐 Вычислен IP шлюза WSL: $host_ip" fi if [ -z "$host_ip" ]; then echo "❌ Ошибка: Не удалось определить IP-адрес." return 1 fi # Обновляем /etc/hosts в Ubuntu sudo sed -i '/hproxy.local/d' /etc/hosts echo "$host_ip hproxy.local" | sudo tee -a /etc/hosts > /dev/null echo "✅ Готово! hproxy.local теперь указывает на $host_ip" } # Удобные функции-переключатели для терминала proxy_on() { export HTTP_PROXY="http://hproxy.local:12334" export HTTPS_PROXY="http://hproxy.local:12334" export ALL_PROXY="socks5://hproxy.local:12334" export NO_PROXY="hproxy.local,localhost,127.0.0.1" echo "✅ Proxy enabled. Checking route..." # Подставляем результат выполнения curl прямо в строку echo "🌍 Current IP: $(curl -s --max-time 3 https://ifconfig.me)" } proxy_off() { unset HTTP_PROXY HTTPS_PROXY ALL_PROXY echo "❌ Proxy disabled. Checking route..." echo "🏠 Current IP: $(curl -s --max-time 3 https://ifconfig.me)" } # Заодно можно добавить алиас, чтобы быстро чекать IP в любой момент без переключения alias myip='echo "IP: $(curl -s --max-time 3 https://ifconfig.me)"'