mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-07-09 16:00:59 +00:00
The Tailscale system extension on macOS applies an NECP policy that captures the Pulse process outbound Go TCP connections, routing them through utun4. RFC 1918 addresses (192.168.0.x) fail with EHOSTUNREACH; Tailscale CGNAT addresses (100.x.x.x) work normally. exec.Command subprocesses bypass NECP. Add a subprocessConn type (subprocess_conn.go) that wraps nc stdin/stdout as a net.Conn with real deadline enforcement (closes the connection on timeout). Modify DialContextWithCache (dnscache.go) to route RFC 1918 addresses through the subprocess relay on macOS, while Tailscale IPs and public IPs continue using the normal dialer. Result: pbs-docker and pi Proxmox/PBS nodes now connect at the transport layer. Remaining pi poll timeouts are caused by a pre-existing server-side reverse DNS lookup delay (3s per HTTPS request); fix is NO_RESOLVE=1 in /etc/default/pveproxy on each Proxmox node. |
||
|---|---|---|
| .. | ||
| dnscache.go | ||
| dnscache_test.go | ||
| extra_test.go | ||
| fingerprint.go | ||
| subprocess_conn.go | ||
| tlsutil_test.go | ||