mirror of
https://github.com/andrey271192/PCA_Phobos.git
synced 2026-09-21 12:01:56 +00:00
docs: add user troubleshooting guide
This commit is contained in:
36
README.md
36
README.md
@@ -156,24 +156,26 @@ bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main
|
|||||||
|
|
||||||
## Возможные проблемы и решения
|
## Возможные проблемы и решения
|
||||||
|
|
||||||
| Симптом | Причина | Решение |
|
Подробный разбор вынесен в отдельный файл:
|
||||||
|---------|---------|---------|
|
|
||||||
| **Команда установки → 403 / не качается** | репозиторий приватный | Сделай репозиторий публичным, либо ставь с токеном: `GH_TOKEN=ghp_xxx bash <(curl -fsSL -H "Authorization: token ghp_xxx" .../install.sh)` |
|
|
||||||
| **Панель не открывается** | панель перезапускалась (обновление) / сервер недоступен | Подожди 5 сек, обнови страницу. Проверь: `systemctl status phobos-panel` |
|
|
||||||
| **Клиент Offline, хотя работает** | роутер на резервном сервере | Норма — статус считается по handshake на **любом** сервере; обнови страницу |
|
|
||||||
| **«SSH timeout» при тесте роутера** | роутер за NAT, входящий SSH закрыт | Это нормально — управление идёт по pull-каналу через туннель, SSH не нужен |
|
|
||||||
| **У роутера нет интернета на LAN-устройствах** | WG-интерфейс `private` / нет привязки устройства к политике | На роутере: `security-level public` + `ip hotspot host <mac> policy <PolicyName>`; health-скрипт чинит это сам в течение ~5 мин |
|
|
||||||
| **Роутер не поднялся после перезагрузки** | Entware/USB не запустил автозагрузку | Сторож (watchdog) поднимет за ~3 мин (нужны KeenDNS + web-логин роутера в `router_access`), либо перезагрузи роутер ещё раз |
|
|
||||||
| **iPhone не подключается по `phobos://`** | на iOS нет приложения-обфускатора | Используй 🍎-конфиг (обычный WireGuard) + открой 51820 (`ALLOW_PLAIN_WG=1`) |
|
|
||||||
| **Смена сервера применяется не сразу** | роутер тянет конфиг по cron | Применяется за ~12–15 сек, не мгновенно |
|
|
||||||
| **Забыл порт панели** | случайный порт | `cat /opt/phobos-panel/.port` |
|
|
||||||
| **Забыл API key** | | `grep server_api_key /opt/phobos-panel/settings.json` |
|
|
||||||
| **PhobosWG: «невозможно импортировать туннель»** | старая панель генерила неполный `phobos://` (без `PresharedKey`) | Обнови панель, заново скопируй `phobos://`-ссылку или пересканируй QR. Исправлено в v1.2.7 |
|
|
||||||
| **Роутер aarch64: «бинарник не найден в архиве»** | Ground-Zerro раздаёт только x86_64 | Обнови (`phobos-update`) — aarch64/mipsel/armv7 авто-качаются из ClusterM, затем пересоздай клиента. Исправлено в v1.2.6 |
|
|
||||||
| **Клиент не подключается, «НЕТ СОЕДИНЕНИЯ»** | клиентский обфускатор целился в неверный порт (51821) | Обнови панель → **пересоздай клиента** → переустанови на роутере. Порт берётся из `OBFUSCATOR_PORTS` |
|
|
||||||
| **Удалить сервер полностью** | | `bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/uninstall.sh)` |
|
|
||||||
|
|
||||||
Логи: `journalctl -u phobos-panel -n 50` · сторож: `/opt/Phobos/server/watchdog.log` · роутер: `/opt/etc/Phobos/health.log`.
|
**[docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** — установка сервера, роутеры, Android/iOS, secondary API, failover, Telegram, обновление, удаление, логи и что писать в issue.
|
||||||
|
|
||||||
|
Самые частые быстрые проверки:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update stable
|
||||||
|
systemctl status phobos-panel --no-pager
|
||||||
|
journalctl -u phobos-panel -n 80 --no-pager
|
||||||
|
cat /opt/phobos-panel/.port
|
||||||
|
```
|
||||||
|
|
||||||
|
На роутере:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator status
|
||||||
|
tail -n 80 /opt/etc/Phobos/health.log
|
||||||
|
grep '^SERVER_' /opt/etc/Phobos/failover.conf
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
627
docs/TROUBLESHOOTING.md
Normal file
627
docs/TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,627 @@
|
|||||||
|
# PCA Phobos: проблемы, диагностика и решения
|
||||||
|
|
||||||
|
Этот документ для живых ситуаций: установка не пошла, роутер не поднялся, Android не импортирует QR, secondary отвечает 401, Telegram молчит. Ниже симптомы, причины, проверки и безопасные решения.
|
||||||
|
|
||||||
|
Не публикуй в issue и чатах пароли, токены, приватные ключи WireGuard, `server_api_key`, `pull_token`, `GH_TOKEN`/`PHOBOS_KEY`, `PrivateKey`, содержимое `settings.json` целиком. Если нужен лог или конфиг, замени секреты на `***`.
|
||||||
|
|
||||||
|
## Быстрый чек-лист
|
||||||
|
|
||||||
|
На сервере:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update stable
|
||||||
|
cat /opt/phobos-panel/.version
|
||||||
|
cat /opt/phobos-panel/.port
|
||||||
|
systemctl status phobos-panel --no-pager
|
||||||
|
journalctl -u phobos-panel -n 80 --no-pager
|
||||||
|
curl -s http://127.0.0.1:$(cat /opt/phobos-panel/.port)/api/obf-health
|
||||||
|
```
|
||||||
|
|
||||||
|
На роутере:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator status
|
||||||
|
tail -n 80 /opt/etc/Phobos/health.log
|
||||||
|
grep '^SERVER_' /opt/etc/Phobos/failover.conf
|
||||||
|
grep '^target' /opt/etc/Phobos/wg-obfuscator.conf
|
||||||
|
crontab -l | grep phobos
|
||||||
|
```
|
||||||
|
|
||||||
|
На secondary:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status phobos-api --no-pager
|
||||||
|
journalctl -u phobos-api -n 80 --no-pager
|
||||||
|
curl -i http://SECONDARY_IP:8444/api/health
|
||||||
|
```
|
||||||
|
|
||||||
|
## Установка сервера
|
||||||
|
|
||||||
|
### Команда установки пишет `403`, `404`, `Bad credentials`
|
||||||
|
|
||||||
|
Чаще всего ставится закрытый канал без ключа или ключ устарел.
|
||||||
|
|
||||||
|
Stable ставится без ключа:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/install.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Beta/dev требуют ключ:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
PHOBOS_KEY=ваш_ключ CHANNEL=beta \
|
||||||
|
bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/install.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверка доступа к public stable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -I https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверка закрытого канала:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -I -H "Authorization: token ваш_ключ" \
|
||||||
|
https://raw.githubusercontent.com/andrey271192/PCA_Phobos-dev/beta/install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Панель не открывается
|
||||||
|
|
||||||
|
Проверь реальный порт панели:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat /opt/phobos-panel/.port
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверь сервис:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status phobos-panel --no-pager
|
||||||
|
journalctl -u phobos-panel -n 120 --no-pager
|
||||||
|
ss -lntp | grep "$(cat /opt/phobos-panel/.port)"
|
||||||
|
```
|
||||||
|
|
||||||
|
Если сервис упал:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl restart phobos-panel
|
||||||
|
journalctl -u phobos-panel -n 120 --no-pager
|
||||||
|
```
|
||||||
|
|
||||||
|
Если сервис живой, но браузер не открывает панель, проверь firewall/VPS-панель: порт из `/opt/phobos-panel/.port` должен быть открыт.
|
||||||
|
|
||||||
|
### Забыт порт, пароль или API key
|
||||||
|
|
||||||
|
Порт:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat /opt/phobos-panel/.port
|
||||||
|
```
|
||||||
|
|
||||||
|
Пароль:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep admin_pass /opt/phobos-panel/settings.json
|
||||||
|
```
|
||||||
|
|
||||||
|
API key:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep server_api_key /opt/phobos-panel/settings.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Не отправляй эти значения в публичный issue.
|
||||||
|
|
||||||
|
### Обновление сломало панель
|
||||||
|
|
||||||
|
Откат:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update --rollback
|
||||||
|
```
|
||||||
|
|
||||||
|
Список бэкапов:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update --list
|
||||||
|
```
|
||||||
|
|
||||||
|
Обновление трогает панель и скрипты, но не должно удалять WireGuard-ключи, клиентов и `/opt/Phobos/server/server.env`.
|
||||||
|
|
||||||
|
## Установка на роутер
|
||||||
|
|
||||||
|
### Команда на роутере пишет `ERROR_install_script_download_failed`
|
||||||
|
|
||||||
|
Причины:
|
||||||
|
|
||||||
|
- install token старый или просрочен;
|
||||||
|
- роутер не достучался до порта панели;
|
||||||
|
- вместо shell скачался HTML;
|
||||||
|
- пакет клиента собран старой версией скриптов.
|
||||||
|
|
||||||
|
Проверка с роутера:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
u="http://SERVER_IP:PANEL_PORT/init/TOKEN.sh"
|
||||||
|
wget -q -O /tmp/phobos-init-test.sh "$u"
|
||||||
|
head -n 3 /tmp/phobos-init-test.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Хорошо:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
#!/bin/sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Плохо:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!DOCTYPE html>
|
||||||
|
```
|
||||||
|
|
||||||
|
Решение:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update stable
|
||||||
|
/opt/Phobos/repo/server/scripts/phobos-client.sh package CLIENT_ID
|
||||||
|
/opt/Phobos/repo/server/scripts/phobos-client.sh link CLIENT_ID
|
||||||
|
```
|
||||||
|
|
||||||
|
Потом вставь новую команду установки на роутере.
|
||||||
|
|
||||||
|
### Пакет битый: `Bad package`, `not in gzip format`, HTML вместо tar.gz
|
||||||
|
|
||||||
|
Роутер скачал не пакет, а страницу ошибки.
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
file /tmp/phobos_install_*/package.tar.gz
|
||||||
|
tar tzf /tmp/phobos_install_*/package.tar.gz | head
|
||||||
|
```
|
||||||
|
|
||||||
|
Решение:
|
||||||
|
|
||||||
|
- скопируй новую install-команду из панели;
|
||||||
|
- проверь, что в команде правильный порт панели;
|
||||||
|
- пересобери пакет клиента командой `package CLIENT_ID`;
|
||||||
|
- если VPS firewall закрывает порт панели, открой его.
|
||||||
|
|
||||||
|
### Установка прошла, но WireGuard интерфейс не появился
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ls -l /opt/etc/Phobos
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator status
|
||||||
|
ndmc -c "show interface" | grep -i Phobos
|
||||||
|
tail -n 120 /opt/etc/Phobos/health.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Причины:
|
||||||
|
|
||||||
|
- нет свободного `Wireguard0..Wireguard9`;
|
||||||
|
- старый Phobos-интерфейс остался после ручных тестов;
|
||||||
|
- RCI API роутера вернул ошибку.
|
||||||
|
|
||||||
|
Безопасное решение:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/Phobos/phobos-uninstall.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Потом вставь свежую команду установки. Если удаляешь интерфейсы вручную, трогай только те, где description начинается с `Phobos-`.
|
||||||
|
|
||||||
|
### SSH test роутера в панели показывает timeout
|
||||||
|
|
||||||
|
Это часто нормально. Роутеры обычно за NAT, мобильным интернетом или KeenDNS. PCA Phobos не требует входящий SSH на роутер: основной способ управления - pull, роутер сам тянет конфиг.
|
||||||
|
|
||||||
|
Проверяй pull:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
crontab -l | grep phobos-pull
|
||||||
|
tail -n 80 /opt/etc/Phobos/health.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Если `phobos-pull.sh` есть в cron, timeout SSH не значит, что система сломана.
|
||||||
|
|
||||||
|
### После reboot у роутера сменился внешний IP
|
||||||
|
|
||||||
|
Это нормально для домашнего провайдера. Phobos должен подняться сам.
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator status
|
||||||
|
ndmc -c "show interface Wireguard3"
|
||||||
|
grep '^target' /opt/etc/Phobos/wg-obfuscator.conf
|
||||||
|
crontab -l | grep phobos
|
||||||
|
```
|
||||||
|
|
||||||
|
Если не поднялся:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator restart
|
||||||
|
sh /opt/etc/Phobos/phobos-health.sh
|
||||||
|
tail -n 120 /opt/etc/Phobos/health.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### После reboot Phobos не стартует
|
||||||
|
|
||||||
|
Частые причины:
|
||||||
|
|
||||||
|
- Entware не смонтировался;
|
||||||
|
- `/opt` поднялся поздно;
|
||||||
|
- cron не стартовал;
|
||||||
|
- init-скрипт потерял execute-bit.
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mount | grep /opt
|
||||||
|
ls -l /opt/etc/init.d/S49wg-obfuscator
|
||||||
|
crontab -l | grep phobos
|
||||||
|
```
|
||||||
|
|
||||||
|
Решение:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
chmod +x /opt/etc/init.d/S49wg-obfuscator
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator restart
|
||||||
|
```
|
||||||
|
|
||||||
|
Если `/opt` пустой или не смонтирован, это проблема Entware/USB/накопителя.
|
||||||
|
|
||||||
|
### На роутере VPN есть, но LAN-устройства не ходят через него
|
||||||
|
|
||||||
|
Для Keenetic/Netcraze важны:
|
||||||
|
|
||||||
|
- Phobos WireGuard interface должен быть `security-level public`;
|
||||||
|
- LAN-устройства должны быть привязаны к нужной policy.
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ndmc -c "show interface Wireguard3" | grep security-level
|
||||||
|
ndmc -c "show running-config" | grep -E 'ip hotspot host|policy'
|
||||||
|
```
|
||||||
|
|
||||||
|
Health-скрипт пытается чинить это сам. Запусти вручную:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sh /opt/etc/Phobos/phobos-health.sh
|
||||||
|
tail -n 120 /opt/etc/Phobos/health.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Удалить Phobos с роутера
|
||||||
|
|
||||||
|
На роутере:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/Phobos/phobos-uninstall.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт останавливает obfuscator, удаляет Phobos-интерфейс WireGuard, cron-строки и файлы `/opt/etc/Phobos`.
|
||||||
|
|
||||||
|
## Failover и pull-модель
|
||||||
|
|
||||||
|
### В логах `STALE`, `PORT HOP`, `FAILOVER`
|
||||||
|
|
||||||
|
Пример:
|
||||||
|
|
||||||
|
```text
|
||||||
|
STALE: handshake=9999s
|
||||||
|
ACTION: restart obfuscator
|
||||||
|
PORT HOP -> port idx 1
|
||||||
|
FAILOVER -> server 2
|
||||||
|
```
|
||||||
|
|
||||||
|
Это не всегда ошибка. Так роутер лечит отсутствие handshake:
|
||||||
|
|
||||||
|
1. restart obfuscator;
|
||||||
|
2. другой порт на том же сервере;
|
||||||
|
3. другой сервер.
|
||||||
|
|
||||||
|
Если потом есть `OK: tunnel up`, failover работает штатно.
|
||||||
|
|
||||||
|
### Роутер не получает новый `failover.conf`
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
grep '^SERVER_' /opt/etc/Phobos/failover.conf
|
||||||
|
crontab -l | grep phobos-pull
|
||||||
|
sh /opt/etc/Phobos/phobos-pull.sh
|
||||||
|
tail -n 80 /opt/etc/Phobos/health.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Если публичный адрес панели недоступен, но туннель поднят, проверь tunnel pull:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ip -o addr show | grep '10.25.'
|
||||||
|
grep -- '--interface' /opt/etc/Phobos/phobos-pull.sh
|
||||||
|
PANEL_URLS="http://10.25.0.1:10514" POLL_PASSES=1 sh /opt/etc/Phobos/phobos-pull.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Если в `phobos-pull.sh` нет `--interface`, обнови сервер, пересобери пакет клиента и поставь свежую команду на роутер.
|
||||||
|
|
||||||
|
### `/tmp/phobos-pull.lock` висит долго
|
||||||
|
|
||||||
|
Lock нужен, чтобы два pull-процесса не писали конфиг одновременно.
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cat /tmp/phobos-pull.lock
|
||||||
|
ps | grep phobos-pull
|
||||||
|
```
|
||||||
|
|
||||||
|
Если процесса с этим PID нет:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
rm -f /tmp/phobos-pull.lock
|
||||||
|
sh /opt/etc/Phobos/phobos-pull.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Secondary servers
|
||||||
|
|
||||||
|
### `Инфо`, `Синхр.` или назначение клиента дает 401
|
||||||
|
|
||||||
|
Причина: у secondary старый или другой API key.
|
||||||
|
|
||||||
|
Что делать:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update stable
|
||||||
|
```
|
||||||
|
|
||||||
|
Потом в панели:
|
||||||
|
|
||||||
|
1. `Серверы`;
|
||||||
|
2. нажми `Инфо` на secondary;
|
||||||
|
3. если добавляешь secondary вручную, API key можно оставить пустым - панель использует главный `server_api_key`.
|
||||||
|
|
||||||
|
Если ставишь новый secondary, команда должна содержать реальный порт панели:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
MAIN_SERVER=<main_ip> MAIN_PORT=<panel_port> MAIN_API_KEY=<api_key> \
|
||||||
|
bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/server/secondary-setup.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Порт панели:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat /opt/phobos-panel/.port
|
||||||
|
```
|
||||||
|
|
||||||
|
### Secondary не регистрируется
|
||||||
|
|
||||||
|
На secondary:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status phobos-api --no-pager
|
||||||
|
systemctl status wg-quick@wg0 --no-pager
|
||||||
|
ss -lntp | grep 8444
|
||||||
|
journalctl -u phobos-api -n 100 --no-pager
|
||||||
|
```
|
||||||
|
|
||||||
|
С основного сервера:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -i http://SECONDARY_IP:8444/api/health
|
||||||
|
```
|
||||||
|
|
||||||
|
Если `8444` закрыт, проверь firewall/VPS-панель и сервис `phobos-api`.
|
||||||
|
|
||||||
|
### Deploy Secondary использует не тот порт панели
|
||||||
|
|
||||||
|
Если панель не на `8443`, обязательно укажи `MAIN_PORT`.
|
||||||
|
|
||||||
|
Пример:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
MAIN_SERVER=212.118.52.193 MAIN_PORT=10514 MAIN_API_KEY=*** \
|
||||||
|
bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/server/secondary-setup.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Android, iPhone и QR
|
||||||
|
|
||||||
|
### Android PhobosWG: `Невозможно импортировать туннель`
|
||||||
|
|
||||||
|
Проверь:
|
||||||
|
|
||||||
|
1. Импортируешь именно `phobos://` или QR с Android-страницы клиента.
|
||||||
|
2. Не импортируешь обычный `.conf` в PhobosWG.
|
||||||
|
3. Ссылка скопирована полностью, не обрезана Telegram/мессенджером.
|
||||||
|
4. Панель обновлена, QR открыт заново после обновления.
|
||||||
|
|
||||||
|
Решение:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phobos-update stable
|
||||||
|
```
|
||||||
|
|
||||||
|
Потом заново открой Android-страницу клиента и сканируй QR прямо с панели. Если не помогло, создай нового клиента для телефона. Один клиент = одно устройство; роутер и телефон должны иметь разные клиенты.
|
||||||
|
|
||||||
|
### Android импорт прошел, но интернета нет
|
||||||
|
|
||||||
|
В `[Peer]` должны быть маршруты:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
AllowedIPs = 0.0.0.0/0, ::/0
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверь DNS и MTU:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
DNS = 8.8.8.8, 2001:4860:4860::8888
|
||||||
|
MTU = 1420
|
||||||
|
```
|
||||||
|
|
||||||
|
Если мобильная сеть режет MTU, попробуй `1280`.
|
||||||
|
|
||||||
|
### iPhone не открывает `phobos://`
|
||||||
|
|
||||||
|
На iOS используется обычный WireGuard, не `phobos://`. В панели нажми кнопку iPhone/iOS. Для iOS сервер должен иметь открытый plain WireGuard:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ALLOW_PLAIN_WG=1 bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/install.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Если сервер уже установлен, проверь порт `51820/udp`.
|
||||||
|
|
||||||
|
### QR не сканируется
|
||||||
|
|
||||||
|
- Открой страницу клиента заново.
|
||||||
|
- Увеличь QR.
|
||||||
|
- Используй кнопку копирования ссылки.
|
||||||
|
- Не пересылай QR через мессенджер с сильным сжатием.
|
||||||
|
|
||||||
|
## Telegram
|
||||||
|
|
||||||
|
### Нет сообщений
|
||||||
|
|
||||||
|
В панели должны быть заполнены Telegram Token и Chat ID.
|
||||||
|
|
||||||
|
Проверка с сервера:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 - <<'PY'
|
||||||
|
import json, urllib.request
|
||||||
|
s=json.load(open('/opt/phobos-panel/settings.json'))
|
||||||
|
token=s.get('tg_bot_token','')
|
||||||
|
chat=s.get('tg_chat_id','')
|
||||||
|
print('token set:', bool(token), 'chat set:', bool(chat))
|
||||||
|
if token and chat:
|
||||||
|
data=json.dumps({'chat_id':chat,'text':'PCA Phobos test message'}).encode()
|
||||||
|
req=urllib.request.Request(f'https://api.telegram.org/bot{token}/sendMessage',
|
||||||
|
data=data, headers={'Content-Type':'application/json'})
|
||||||
|
print(urllib.request.urlopen(req, timeout=15).read().decode())
|
||||||
|
PY
|
||||||
|
```
|
||||||
|
|
||||||
|
Не отправляй вывод с токеном в публичный issue.
|
||||||
|
|
||||||
|
### Сервер падал, но Telegram не прислал DOWN
|
||||||
|
|
||||||
|
Панель не объявляет сервер упавшим после одного таймаута, чтобы не спамить при коротких сетевых сбоях. Нужно несколько неудачных циклов подряд.
|
||||||
|
|
||||||
|
Проверь интервал:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep monitor_interval /opt/phobos-panel/settings.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверь secondary:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -i http://SECONDARY_IP:8444/api/health
|
||||||
|
```
|
||||||
|
|
||||||
|
Если UI стал Offline, но сообщения нет, проверь Bot API тестом выше.
|
||||||
|
|
||||||
|
## Скорость и стабильность
|
||||||
|
|
||||||
|
### Скорость низкая
|
||||||
|
|
||||||
|
Проверь, куда сейчас смотрит клиент:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
grep '^target' /opt/etc/Phobos/wg-obfuscator.conf
|
||||||
|
tail -n 120 /opt/etc/Phobos/health.log
|
||||||
|
```
|
||||||
|
|
||||||
|
На сервере:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wg show
|
||||||
|
curl -s http://127.0.0.1:$(cat /opt/phobos-panel/.port)/api/obf-health
|
||||||
|
```
|
||||||
|
|
||||||
|
Если в логах постоянный `PORT HOP` или `FAILOVER`, провайдер может плохо пропускать текущий порт/IP. Поменяй приоритет серверов или проверь другой порт.
|
||||||
|
|
||||||
|
### Ping большой
|
||||||
|
|
||||||
|
Частые причины:
|
||||||
|
|
||||||
|
- выбран дальний secondary;
|
||||||
|
- роутер ушел в failover;
|
||||||
|
- перегружен VPS;
|
||||||
|
- провайдер плохо маршрутизирует конкретный порт.
|
||||||
|
|
||||||
|
Смотри страницу `Серверы`: CPU/RAM, Online/Offline, назначение клиента.
|
||||||
|
|
||||||
|
## Безопасная переустановка
|
||||||
|
|
||||||
|
Только роутер:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/opt/etc/Phobos/phobos-uninstall.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Потом вставь свежую команду установки из панели. Клиент на сервере при этом не удаляется.
|
||||||
|
|
||||||
|
Полностью пересоздать клиента:
|
||||||
|
|
||||||
|
1. Удали клиента в панели.
|
||||||
|
2. Создай нового клиента.
|
||||||
|
3. Установи новый конфиг на устройство.
|
||||||
|
|
||||||
|
Так надо делать, если один и тот же клиент случайно использовался на двух устройствах.
|
||||||
|
|
||||||
|
Полностью удалить сервер:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/uninstall.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Без подтверждения:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
PURGE=1 bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main/uninstall.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Что писать в issue
|
||||||
|
|
||||||
|
Приложи:
|
||||||
|
|
||||||
|
- версия: `cat /opt/phobos-panel/.version`;
|
||||||
|
- канал: stable/beta/dev;
|
||||||
|
- что именно ставишь: основной сервер, secondary, роутер, Android, iOS;
|
||||||
|
- текст ошибки;
|
||||||
|
- что уже пробовал;
|
||||||
|
- последние 80-120 строк логов.
|
||||||
|
|
||||||
|
Сервер:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
journalctl -u phobos-panel -n 120 --no-pager
|
||||||
|
systemctl status phobos-panel --no-pager
|
||||||
|
```
|
||||||
|
|
||||||
|
Роутер:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
tail -n 120 /opt/etc/Phobos/health.log
|
||||||
|
/opt/etc/init.d/S49wg-obfuscator status
|
||||||
|
```
|
||||||
|
|
||||||
|
Secondary:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
journalctl -u phobos-api -n 120 --no-pager
|
||||||
|
systemctl status phobos-api --no-pager
|
||||||
|
```
|
||||||
|
|
||||||
|
Перед отправкой замени секреты:
|
||||||
|
|
||||||
|
```text
|
||||||
|
server_api_key = ***
|
||||||
|
PrivateKey = ***
|
||||||
|
PresharedKey = ***
|
||||||
|
pull_token = ***
|
||||||
|
GH_TOKEN = ***
|
||||||
|
PHOBOS_KEY = ***
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user