Add 6_final_fix_of_rustdesk_client_port.sh

This commit is contained in:
2025-11-20 23:35:54 +05:30
parent f624e462f3
commit c33220f6b7

View File

@@ -0,0 +1,98 @@
sudo tee /etc/nginx/streams-enabled/rustdesk.conf >/dev/null <<'EOF'
# --- hbbs (ID) defaults ---
server { listen 21115; proxy_pass 192.168.1.202:21115; proxy_timeout 10m; }
server { listen 21116; proxy_pass 192.168.1.202:21116; proxy_timeout 10m; }
server { listen 21116 udp reuseport; proxy_pass 192.168.1.202:21116; proxy_timeout 10m; }
# --- hbbr (relay) default ---
server { listen 21117; proxy_pass 192.168.1.202:21117; proxy_timeout 10m; }
# --- your custom extras (keep if you use them) ---
server { listen 21118; proxy_pass 192.168.1.202:21118; proxy_timeout 10m; }
server { listen 21119; proxy_pass 192.168.1.202:21119; proxy_timeout 10m; }
EOF
``` :contentReference[oaicite:2]{index=2}
But because nginx fails at the `stream { ... }` line in `nginx.conf`, this whole file is never used. So:
- **HTTPS / HTTP proxy** for `github.generalinfinity.cloud` works (pure HTTP servers in `sites-available/lan-proxy.conf`). :contentReference[oaicite:3]{index=3}
- **RustDesk (id / relay)** needs the **stream module** and the `rustdesk.conf` stream servers → those are dead right now.
On your *other* Ubuntu machine, you probably already had `libnginx-mod-stream` or `nginx-full` installed earlier, so `stream` existed and the same scripts worked. On this fresh box, only `nginx` was installed, so no stream module.
---
## 3. Concrete “one-paste” fix (run on the PROXY box)
Run this on the machine that should act as the **proxy** for:
- `github.generalinfinity.cloud` (already working)
- `id.generalinfinity.cloud` (RustDesk ID)
- `relay.generalinfinity.cloud` (RustDesk relay)
```bash
#!/usr/bin/env bash
set -Eeuo pipefail
###############################################################################
# 0) Install Nginx stream module + nc (if not already)
###############################################################################
sudo apt update
sudo apt install -y libnginx-mod-stream netcat-openbsd
###############################################################################
# 1) Ensure streams-enabled dir + top-level stream block
###############################################################################
sudo mkdir -p /etc/nginx/streams-enabled
# Remove any old stream{} block and append a clean one at top level
sudo sed -i '/^\s*stream\s*{/,/^\s*}\s*$/d' /etc/nginx/nginx.conf
sudo tee -a /etc/nginx/nginx.conf >/dev/null <<'EOF'
stream {
include /etc/nginx/streams-enabled/*.conf;
}
EOF
###############################################################################
# 2) RustDesk L4 proxies to your hbbs/hbbr box (192.168.1.202)
###############################################################################
sudo tee /etc/nginx/streams-enabled/rustdesk.conf >/dev/null <<'EOF'
# --- hbbs (ID) defaults ---
server { listen 21115; proxy_pass 192.168.1.202:21115; proxy_timeout 10m; }
server { listen 21116; proxy_pass 192.168.1.202:21116; proxy_timeout 10m; }
server { listen 21116 udp reuseport; proxy_pass 192.168.1.202:21116; proxy_timeout 10m; }
# --- hbbr (relay) default ---
server { listen 21117; proxy_pass 192.168.1.202:21117; proxy_timeout 10m; }
# --- your custom extras (keep if you use them) ---
server { listen 21118; proxy_pass 192.168.1.202:21118; proxy_timeout 10m; }
server { listen 21119; proxy_pass 192.168.1.202:21119; proxy_timeout 10m; }
EOF
###############################################################################
# 3) Fix ufw rules for RustDesk ports (split per port)
###############################################################################
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
###############################################################################
# 4) Test nginx config and reload
###############################################################################
sudo nginx -t
sudo systemctl reload nginx
###############################################################################
# 5) Verify listeners on this proxy
###############################################################################
sudo ss -tulpen | grep -E ':(21115|21116|21117|21118|21119)\b' || echo "no listeners"
echo "Now test from a client:"
echo " nc -vz id.generalinfinity.cloud 21116"
echo " nc -vz relay.generalinfinity.cloud 21117"