feat(wsl): добавлен boot-скрипт для автоматического резолва hproxy.local
- Зачем: - старая команда в wsl.conf дублировала записи в /etc/hosts при каждом ребуте. - настройка hproxy.local не была задокументирована в репозитории. - Что: - создан идемпотентный скрипт scripts/setup-hproxy.sh (sed + append). - в install.sh добавлен интерактивный вопрос о подключении скрипта в wsl.conf. - в README.md добавлена документация по настройке hproxy.local (NAT и Mirror). - Проверка: - cat /etc/wsl.conf, wsl --shutdown, getent hosts hproxy.local. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
5eafb99639
commit
98484ad220
3 files changed
+71
No files matched your search
@@ -89,6 +89,7 @@ cd ~/dotfiles
|
||||
- Создаёт `~/.claude/settings.local.json` с дефолтными model/effortLevel
|
||||
- Защищает `settings.json` от перезаписи (`chmod 444`)
|
||||
- Автоматически добавляет подключение bash_custom в `~/.bashrc`
|
||||
- В WSL предлагает настроить автоматический резолв `hproxy.local` (см. ниже)
|
||||
|
||||
### Stow вручную
|
||||
|
||||
@@ -201,6 +202,40 @@ export ZAI_API_KEY="your_zai_api_key_here"
|
||||
|
||||
Файл `~/.env.secrets` автоматически подгружается при старте shell.
|
||||
|
||||
### WSL: настройка hproxy.local
|
||||
|
||||
Имя `hproxy.local` используется как алиас для хоста, на котором работает прокси-сервер. Это позволяет функциям `proxy_on`/`proxy_off` и VS Code Server не зависеть от конкретного IP-адреса.
|
||||
|
||||
**NAT mode** (по умолчанию в WSL2) — IP шлюза меняется при каждом запуске, поэтому нужен автоматический boot-скрипт:
|
||||
|
||||
```bash
|
||||
# Вариант 1: через install.sh (интерактивно)
|
||||
./install.sh # ответьте "y" на вопрос про wsl.conf
|
||||
|
||||
# Вариант 2: вручную
|
||||
sudo tee -a /etc/wsl.conf <<'EOF'
|
||||
|
||||
[boot]
|
||||
command = "/path/to/dotfiles/scripts/setup-hproxy.sh"
|
||||
EOF
|
||||
```
|
||||
|
||||
После изменения `wsl.conf` перезапустите WSL: `wsl --shutdown`.
|
||||
|
||||
Обновить `hproxy.local` без перезапуска WSL:
|
||||
```bash
|
||||
sudo scripts/setup-hproxy.sh
|
||||
# или
|
||||
update_hproxy # интерактивная функция из .bash_functions
|
||||
```
|
||||
|
||||
**Mirror mode** (`networkingMode=mirrored` в `.wslconfig`) — WSL разделяет сетевой стек с хостом, IP не меняется. Достаточно один раз прописать запись в Windows hosts:
|
||||
|
||||
```
|
||||
# C:\Windows\System32\drivers\etc\hosts
|
||||
192.168.1.100 hproxy.local
|
||||
```
|
||||
|
||||
### VS Code Server в WSL
|
||||
|
||||
Файл `vscode/.vscode-server/server-env-setup` выполняется при каждом старте VS Code Server в WSL и делает две вещи:
|
||||
|
||||
+24
@@ -65,4 +65,28 @@ else
|
||||
info "Добавлено в ~/.bashrc: $BASHRC_LINE"
|
||||
fi
|
||||
|
||||
# --- WSL: hproxy.local (автоматический резолв при старте) ---
|
||||
if [ -n "${WSL_DISTRO_NAME:-}" ]; then
|
||||
HPROXY_SCRIPT="$DOTFILES_DIR/scripts/setup-hproxy.sh"
|
||||
if grep -q "hproxy.local" /etc/wsl.conf 2>/dev/null; then
|
||||
warn "/etc/wsl.conf уже содержит hproxy.local, пропускаю"
|
||||
else
|
||||
echo ""
|
||||
info "Обнаружен WSL. Скрипт $HPROXY_SCRIPT может автоматически"
|
||||
info "прописывать hproxy.local в /etc/hosts при каждом старте WSL (NAT mode)."
|
||||
echo -ne "${YELLOW}[?]${NC} Добавить boot command в /etc/wsl.conf? [y/N] "
|
||||
read -r answer
|
||||
if [[ "$answer" =~ ^[Yy]$ ]]; then
|
||||
# Добавляем [boot] секцию, если её нет
|
||||
if ! grep -q '^\[boot\]' /etc/wsl.conf 2>/dev/null; then
|
||||
printf '\n[boot]\n' | sudo tee -a /etc/wsl.conf > /dev/null
|
||||
fi
|
||||
sudo sed -i "/^\[boot\]/a command = \"$HPROXY_SCRIPT\"" /etc/wsl.conf
|
||||
info "Добавлено в /etc/wsl.conf. Перезапустите WSL: wsl --shutdown"
|
||||
else
|
||||
warn "Пропущено. Можно настроить вручную — см. README.md"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
info "Готово!"
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
# Прописывает hproxy.local в /etc/hosts (WSL NAT mode).
|
||||
# Gateway IP WSL = адрес хоста, на котором слушает прокси.
|
||||
#
|
||||
# Использование:
|
||||
# Вручную: sudo ./setup-hproxy.sh
|
||||
# При старте WSL — добавить в /etc/wsl.conf:
|
||||
# [boot]
|
||||
# command = "/path/to/setup-hproxy.sh"
|
||||
|
||||
sed -i '/hproxy.local/d' /etc/hosts
|
||||
ip route show default | awk '{print $3 " hproxy.local"}' >> /etc/hosts
|
||||
Reference in new issue
Block a user