From 2bf3754d62290705823beaf418662bf1b6dd5cb5 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 17 Nov 2025 01:58:43 +0000 Subject: [PATCH] Improve IP detection: prioritize Headscale VPN IP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added get_primary_ip() helper function - Prioritize Headscale VPN IP (100.64.x.x) detection - Fallback to local IP if Headscale not available - Applied to both proxmox-auto-rdp-setup.sh and install-rdp-api.sh - More reliable IP display for API endpoint This ensures VPN IP is shown when available, making remote access more reliable and predictable. ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- RDP/install-rdp-api.sh | 24 +++++++++++++++++++++++- RDP/proxmox-auto-rdp-setup.sh | 24 +++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/RDP/install-rdp-api.sh b/RDP/install-rdp-api.sh index 645e199..40af42e 100755 --- a/RDP/install-rdp-api.sh +++ b/RDP/install-rdp-api.sh @@ -7,6 +7,28 @@ set -e echo "RDP Toggle API ์„ค์น˜ ์‹œ์ž‘..." +# IP ์ฃผ์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ (Headscale ์šฐ์„ , ์—†์œผ๋ฉด ๋กœ์ปฌ IP) +get_primary_ip() { + # Headscale VPN IP ํ™•์ธ (100.64.x.x ๋Œ€์—ญ) + local headscale_ip=$(hostname -I | tr ' ' '\n' | grep '^100\.64\.' | head -n1) + + if [ -n "$headscale_ip" ]; then + echo "$headscale_ip" + return 0 + fi + + # Headscale IP๊ฐ€ ์—†์œผ๋ฉด ๋กœ์ปฌ IP (์ฒซ ๋ฒˆ์งธ) + local local_ip=$(hostname -I | awk '{print $1}') + + if [ -n "$local_ip" ]; then + echo "$local_ip" + return 0 + fi + + # ๊ทธ๊ฒƒ๋„ ์—†์œผ๋ฉด localhost + echo "127.0.0.1" +} + # ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ • INSTALL_DIR="/opt/rdp-toggle-api" VENV_DIR="$INSTALL_DIR/venv" @@ -67,7 +89,7 @@ echo "==========================================" echo "RDP Toggle API ์„ค์น˜ ์™„๋ฃŒ!" echo "==========================================" echo "" -echo "๐Ÿ“ API ์„œ๋ฒ„: http://$(hostname -I | awk '{print $1}'):8090" +echo "๐Ÿ“ API ์„œ๋ฒ„: http://$(get_primary_ip):8090" echo "๐Ÿ“ ์„ค์น˜ ์œ„์น˜: $INSTALL_DIR" echo "" echo "โœ… ์‚ฌ์šฉ ๋ฐฉ๋ฒ•:" diff --git a/RDP/proxmox-auto-rdp-setup.sh b/RDP/proxmox-auto-rdp-setup.sh index a66f34c..f114bc2 100755 --- a/RDP/proxmox-auto-rdp-setup.sh +++ b/RDP/proxmox-auto-rdp-setup.sh @@ -73,6 +73,28 @@ check_proxmox_version() { msg_ok "Proxmox VE $pve_version.x ๋ฒ„์ „ ํ™•์ธ๋จ" } +# IP ์ฃผ์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ (Headscale ์šฐ์„ , ์—†์œผ๋ฉด ๋กœ์ปฌ IP) +get_primary_ip() { + # Headscale VPN IP ํ™•์ธ (100.64.x.x ๋Œ€์—ญ) + local headscale_ip=$(hostname -I | tr ' ' '\n' | grep '^100\.64\.' | head -n1) + + if [ -n "$headscale_ip" ]; then + echo "$headscale_ip" + return 0 + fi + + # Headscale IP๊ฐ€ ์—†์œผ๋ฉด ๋กœ์ปฌ IP (์ฒซ ๋ฒˆ์งธ) + local local_ip=$(hostname -I | awk '{print $1}') + + if [ -n "$local_ip" ]; then + echo "$local_ip" + return 0 + fi + + # ๊ทธ๊ฒƒ๋„ ์—†์œผ๋ฉด localhost + echo "127.0.0.1" +} + # ๋ฃจํŠธ ๊ถŒํ•œ ํ™•์ธ check_root() { if [ "$EUID" -ne 0 ]; then @@ -600,7 +622,7 @@ print_completion() { echo -e "${YELLOW}์ฐธ๊ณ :${NC}" echo " - ๋ฌผ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ(tty1)์—์„œ RDP ์—ฐ๊ฒฐ์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค" echo " - SSH ์„ธ์…˜์€ ๊ณ„์† ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค" - echo " - RDP Toggle API: http://$(hostname -I | awk '{print $1}'):8090" + echo " - RDP Toggle API: http://$(get_primary_ip):8090" echo "" echo -e "${CYAN}API ์‚ฌ์šฉ ์˜ˆ์‹œ:${NC}" echo " Shell ๋ชจ๋“œ๋กœ ์ „ํ™˜: curl -X POST http://localhost:8090/toggle -H 'Content-Type: application/json' -d '{\"mode\":\"shell\"}'"