11# go-wol-ssh
22
33A tiny TCP reverse proxy that wakes sleeping machines via Wake-on-LAN ** before**
4- forwarding the connection — so ` ssh user@ssh.yourdomain.com ` just works, even
4+ forwarding the connection - so ` ssh user@ssh.yourdomain.com ` just works, even
55when the target machine is powered off.
66
77Inspired by [ go-wol-proxy] ( https://github.com/darksworm/go-wol-proxy ) , which
88does the same thing for HTTP. ` go-wol-ssh ` works at the TCP layer, so it can
9- wake machines on any port-based protocol (SSH, RDP, VNC, etc.) — no client-side
9+ wake machines on any port-based protocol (SSH, RDP, VNC, etc.) - no client-side
1010` ProxyCommand ` or special app support required.
1111
1212## How it works
@@ -66,11 +66,11 @@ machines:
6666| ` listen_host` | no | `0.0.0.0` | Interface to bind all listeners on |
6767| `wake_timeout` | no | `120` | Seconds to wait before giving up on a wake |
6868| `poll_interval` | no | `3` | Seconds between reachability checks |
69- | `machines[].label` | yes | — | Human-readable label (used in logs) |
70- | `machines[].port` | yes | — | Port clients connect to; must be unique per machine |
71- | `machines[].ip` | yes | — | Target machine's LAN IP |
72- | `machines[].mac` | yes | — | Target machine's MAC (colon or dash separated) |
73- | `machines[].broadcast` | yes | — | Subnet broadcast address for WOL |
69+ | `machines[].label` | yes | - | Human-readable label (used in logs) |
70+ | `machines[].port` | yes | - | Port clients connect to; must be unique per machine |
71+ | `machines[].ip` | yes | - | Target machine's LAN IP |
72+ | `machines[].mac` | yes | - | Target machine's MAC (colon or dash separated) |
73+ | `machines[].broadcast` | yes | - | Subnet broadcast address for WOL |
7474| `machines[].ssh_port` | no | `22` | Port to probe and proxy on the target |
7575| `machines[].wol_port` | no | `9` | UDP port for WOL magic packet |
7676
@@ -119,7 +119,7 @@ Point `ssh.yourdomain.com` at the host (LXC container, VM, etc.) running
119119 - **IP Address:** `<IP of the machine/LXC running go-wol-ssh>`
1201204. Click **Add**.
121121
122- That's it — Pi-hole picks it up immediately. Verify with :
122+ That's it - Pi-hole picks it up immediately. Verify with :
123123
124124` ` ` bash
125125dig @<pihole-ip> ssh.yourdomain.com +short
@@ -140,17 +140,9 @@ Verify with:
140140dig @<adguard-ip> ssh.yourdomain.com +short
141141` ` `
142142
143- # ## WireGuard clients
144-
145- Make sure your WireGuard peer config :
146-
147- - Sets the DNS server to your Pi-hole / AdGuard IP (`DNS = 192.168.x.x`).
148- - Includes the LAN subnet in `AllowedIPs` so the proxy host is reachable over
149- the tunnel (e.g. `AllowedIPs = 192.168.100.0/24`).
150-
151143# # Usage
152144
153- From any SSH client — terminal, Termius on iOS, VS Code Remote, etc. :
145+ From any SSH client - terminal, Termius on iOS, VS Code Remote, etc. :
154146
155147` ` ` bash
156148ssh -i ~/.ssh/mykey -p 2222 user@ssh.yourdomain.com # Gaming PC
0 commit comments