2026-06-14 HTPC за TPLink WRT — WOL socat setup doc
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
# HTPC за TPLink WRT — WOL через роутер
|
||||
|
||||
## Схема сети
|
||||
|
||||
```
|
||||
Главная сеть: 192.168.1.0/24 (основной роутер)
|
||||
│
|
||||
├─ TV (LG): 192.168.1.75
|
||||
├─ TPLink WRT: 192.168.1.84 (WiFi-uplink, phy1-sta0)
|
||||
│ │
|
||||
│ └─ LAN (br-lan, 192.168.6.2/16)
|
||||
│ └─ HTPC: 192.168.1.86 (статический IP, физически на LAN порту TPLink)
|
||||
└─ ...
|
||||
```
|
||||
|
||||
**HTPC** (192.168.1.86) подключён к LAN-порту TPLink, но имеет статический IP из основного диапазона 192.168.1.x.
|
||||
|
||||
## Проблема WOL
|
||||
|
||||
TV шлёт Magic Packet на broadcast основной сети → TPLink получает его на WiFi-интерфейсе (phy1-sta0, «WAN» с точки зрения fw4). Стандартный broadcast из 192.168.1.x не проходит через NAT к HTPC в br-lan.
|
||||
|
||||
Решение: socat-прокси на TPLink перехватывает UDP:9 и пересылает напрямую на 192.168.1.86:9.
|
||||
|
||||
## Конфигурация TPLink WRT
|
||||
|
||||
### 1. Socat (WOL-прокси)
|
||||
|
||||
Файл: `/etc/init.d/socat`
|
||||
|
||||
```sh
|
||||
#!/bin/sh /etc/rc.common
|
||||
START=99
|
||||
STOP=10
|
||||
SOCAT=/tmp/socat
|
||||
|
||||
start() {
|
||||
if [ ! -x "$SOCAT" ]; then
|
||||
wget -q -T 10 -O /tmp/socat.ipk \
|
||||
"https://downloads.openwrt.org/releases/23.05.5/packages/mipsel_24kc/packages/socat_1.7.4.4-1_mipsel_24kc.ipk"
|
||||
opkg install --dest ram /tmp/socat.ipk 2>/dev/null
|
||||
cp /tmp/usr/bin/socat "$SOCAT"
|
||||
chmod +x "$SOCAT"
|
||||
fi
|
||||
"$SOCAT" UDP-RECVFROM:9,broadcast,reuseaddr,fork UDP-SENDTO:192.168.1.86:9 &
|
||||
}
|
||||
|
||||
stop() {
|
||||
pkill -f "socat.*UDP-RECVFROM:9" 2>/dev/null
|
||||
}
|
||||
```
|
||||
|
||||
Бинарник socat живёт в `/tmp/` (tmpfs) и скачивается при каждой загрузке.
|
||||
Активировать: `service socat enable && service socat start`
|
||||
|
||||
### 2. Статический маршрут к HTPC
|
||||
|
||||
Файл: `/etc/rc.local`
|
||||
|
||||
```sh
|
||||
ip route add 192.168.1.86 dev br-lan
|
||||
```
|
||||
|
||||
Нужен потому что HTPC имеет IP из 192.168.1.x, но физически в br-lan (192.168.6.x subnet). Без маршрута TPLink отправит трафик на 192.168.1.86 через WiFi-uplink (phy1-sta0), а не через LAN-порт.
|
||||
|
||||
### 3. Firewall-правило (Allow-WOL)
|
||||
|
||||
```sh
|
||||
uci add firewall rule
|
||||
uci set firewall.@rule[-1].name="Allow-WOL"
|
||||
uci set firewall.@rule[-1].src="wan"
|
||||
uci set firewall.@rule[-1].proto="udp"
|
||||
uci set firewall.@rule[-1].dest_port="9"
|
||||
uci set firewall.@rule[-1].target="ACCEPT"
|
||||
uci commit firewall
|
||||
/etc/init.d/firewall reload
|
||||
```
|
||||
|
||||
Правило разрешает UDP:9 с WAN (phy1-sta0) → socat может принять пакет.
|
||||
Хранится в `/etc/config/firewall`, переживает перезагрузки.
|
||||
|
||||
## Диагностика
|
||||
|
||||
```sh
|
||||
# Проверить что socat запущен
|
||||
ps | grep socat
|
||||
|
||||
# Проверить маршрут
|
||||
ip route | grep 192.168.1.86
|
||||
|
||||
# Проверить firewall правило
|
||||
nft list chain inet fw4 input_wan | grep "dport 9"
|
||||
```
|
||||
|
||||
## Адреса
|
||||
|
||||
| Устройство | IP | Интерфейс |
|
||||
|---|---|---|
|
||||
| TPLink WRT (WiFi) | 192.168.1.84 | phy1-sta0 |
|
||||
| TPLink WRT (LAN) | 192.168.6.2 | br-lan |
|
||||
| HTPC | 192.168.1.86 | на LAN-порту TPLink |
|
||||
| TV LG | 192.168.1.75 | основная сеть |
|
||||
|
||||
SSH на роутер: `ssh root@192.168.1.84`
|
||||
Reference in New Issue
Block a user