mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
tunnel: client conf без Address — wg setconf не молчал на этой строке
`wg setconf` принимает только базовый формат (PrivateKey/ListenPort + [Peer]), без wg-quick-полей (Address/DNS/Table/...). Раньше клиентский wg0.conf содержал `Address = ...`, на котором setconf падал и не дочитывал [Peer]. Интерфейс поднимался, но без peer-а — handshake не отправлялся, сервер не знал endpoint, пинги через туннель не шли. Исправление: - Убираем Address из тела conf, ставим как ip addr add (это уже было). - В init.up добавили проверку: если после wg setconf нет блока `peer:` в `wg show`, печатаем ВНИМАНИЕ — чтобы такая поломка не оставалась тихой.
This commit is contained in:
@@ -41,10 +41,12 @@ chmod 700 "$WG_DIR"
|
|||||||
|
|
||||||
CONF="$WG_DIR/$WG_IF.conf"
|
CONF="$WG_DIR/$WG_IF.conf"
|
||||||
umask 077
|
umask 077
|
||||||
|
# Формат для `wg setconf` — без wg-quick полей (Address/DNS/Table/PostUp...).
|
||||||
|
# Address выставляем через `ip addr add` в init-скрипте.
|
||||||
cat > "$CONF" <<EOF
|
cat > "$CONF" <<EOF
|
||||||
|
# kssh-tunnel client; адрес: $CLIENT_IP/24
|
||||||
[Interface]
|
[Interface]
|
||||||
PrivateKey = $CLIENT_PRIVKEY
|
PrivateKey = $CLIENT_PRIVKEY
|
||||||
Address = $CLIENT_IP/24
|
|
||||||
|
|
||||||
[Peer]
|
[Peer]
|
||||||
PublicKey = $VPS_PUBKEY
|
PublicKey = $VPS_PUBKEY
|
||||||
@@ -65,11 +67,18 @@ SUBNET="$WG_SUBNET"
|
|||||||
|
|
||||||
up() {
|
up() {
|
||||||
ip link show "\$WG_IF" >/dev/null 2>&1 && ip link del "\$WG_IF" 2>/dev/null
|
ip link show "\$WG_IF" >/dev/null 2>&1 && ip link del "\$WG_IF" 2>/dev/null
|
||||||
ip link add "\$WG_IF" type wireguard
|
ip link add "\$WG_IF" type wireguard || { echo "ip link add не сработал — нет модуля wireguard в ядре?"; return 1; }
|
||||||
wg setconf "\$WG_IF" "\$CONF"
|
if ! wg setconf "\$WG_IF" "\$CONF"; then
|
||||||
|
echo "wg setconf вернул ошибку — проверьте \$CONF (формат: только PrivateKey + [Peer])"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
ip addr add "\$ADDR" dev "\$WG_IF"
|
ip addr add "\$ADDR" dev "\$WG_IF"
|
||||||
ip link set "\$WG_IF" up
|
ip link set "\$WG_IF" up
|
||||||
ip route add "\$SUBNET" dev "\$WG_IF" 2>/dev/null || true
|
ip route add "\$SUBNET" dev "\$WG_IF" 2>/dev/null || true
|
||||||
|
if ! wg show "\$WG_IF" | grep -q '^peer:'; then
|
||||||
|
echo "ВНИМАНИЕ: peer не появился в \$WG_IF — handshake не состоится."
|
||||||
|
echo "Проверьте \$CONF и перезапустите."
|
||||||
|
fi
|
||||||
echo "started \$WG_IF \$ADDR"
|
echo "started \$WG_IF \$ADDR"
|
||||||
}
|
}
|
||||||
down() {
|
down() {
|
||||||
|
|||||||
Reference in New Issue
Block a user