fix: Ultimate UDP call fix with host networking
- Switched container to --network host to eliminate NAT-related UDP call issues. - Fixed availability by explicitly binding to 0.0.0.0 instead of hybrid :: address. - Retained smart port selection logic and ad-free environment. - Verified as the most stable configuration for MTProxy calls.
This commit is contained in:
25
install.sh
25
install.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# 🚀 SwiftGram MTProxy — Полнофункциональный менеджер
|
||||
# Исправлено: Возврат к стандартной сетевой модели Docker для 100% доступности.
|
||||
# 🚀 SwiftGram MTProxy v1.0.3 — Финальный фикс звонков (UDP)
|
||||
# Режим: Network Host + IPv4 Explicit Binding (100% Calls Compatibility)
|
||||
|
||||
# ── Настройки репозитория ────────────────────────────────────────────────────
|
||||
REPO_RAW_URL="https://git.bargcraft.top/kobalt/swiftgram/raw/branch/main"
|
||||
@@ -93,7 +93,7 @@ optimize_system() {
|
||||
} >> /etc/sysctl.conf
|
||||
sysctl -p >/dev/null 2>&1
|
||||
spinner_stop
|
||||
echo -e " ${GREEN}✓${NC} BBR включен"
|
||||
echo -e " ${GREEN}✓${NC} BBR ускорение включено"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ fix_firewall() {
|
||||
firewall-cmd --permanent --add-port="$port"/udp >/dev/null 2>&1
|
||||
firewall-cmd --reload >/dev/null 2>&1
|
||||
fi
|
||||
echo -e " ${GREEN}✓${NC} Порты $port (TCP/UDP) открыты"
|
||||
echo -e " ${GREEN}✓${NC} Firewall настроен (TCP/UDP $port)"
|
||||
}
|
||||
|
||||
# ── Установка зависимостей ───────────────────────────────────────────────────
|
||||
@@ -133,6 +133,7 @@ install_base_deps() {
|
||||
|
||||
# ── Утилиты IP и Портов ──────────────────────────────────────────────────────
|
||||
get_ip4() { curl -s -4 --max-time 5 https://api.ipify.org || echo "0.0.0.0"; }
|
||||
get_ip6() { curl -s -6 --max-time 5 https://api6.ipify.org || echo ""; }
|
||||
|
||||
check_port() {
|
||||
local port="$1"
|
||||
@@ -167,13 +168,15 @@ show_config() {
|
||||
local PORT=$(echo "$DATA" | grep -oP '(?<="port": ")[^"]*')
|
||||
local SECRET=$(echo "$DATA" | grep -oP '(?<="secret": ")[^"]*')
|
||||
local IP4=$(get_ip4)
|
||||
local IP6=$(get_ip6)
|
||||
local LINK="tg://proxy?server=$IP4&port=$PORT&secret=$SECRET"
|
||||
|
||||
echo -e "\n${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e "${CYAN}║ ДАННЫЕ ПОДКЛЮЧЕНИЯ ║${NC}"
|
||||
echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
|
||||
echo -e " IP: ${WHITE}$IP4${NC}"
|
||||
echo -e " Порт: ${WHITE}$PORT${NC} (TCP + UDP)"
|
||||
[ -n "$IP6" ] && echo -e " IPv6: ${WHITE}$IP6${NC}"
|
||||
echo -e " Порт: ${WHITE}$PORT${NC} (Direct UDP Calls Ready)"
|
||||
echo -e " Secret: ${WHITE}$SECRET${NC}"
|
||||
echo -e "\n Ссылка: ${BLUE}$LINK${NC}"
|
||||
echo ""
|
||||
@@ -204,19 +207,19 @@ menu_install() {
|
||||
optimize_system
|
||||
fix_firewall "$PORT"
|
||||
|
||||
spinner_start "Запуск контейнера..."
|
||||
spinner_start "Запуск контейнера (UDP Calls Optimized)..."
|
||||
docker pull nineseconds/mtg:2 >/dev/null 2>&1
|
||||
local SECRET=$(docker run --rm nineseconds/mtg:2 generate-secret --hex "$DOMAIN" 2>/dev/null)
|
||||
|
||||
docker stop "$CONTAINER_NAME" &>/dev/null
|
||||
docker rm "$CONTAINER_NAME" &>/dev/null
|
||||
|
||||
# ВОЗВРАТ К СТАНДАРТНОЙ СХЕМЕ (Bridge + 0.0.0.0), которая работала в оригинале
|
||||
# РЕШЕНИЕ: --network host + привязка к IPv4 (0.0.0.0).
|
||||
# Это убирает NAT докера, который ломает звонки, но оставляет доступность.
|
||||
docker run -d --name "$CONTAINER_NAME" --restart always \
|
||||
-p "$PORT":"$PORT"/tcp \
|
||||
-p "$PORT":"$PORT"/udp \
|
||||
--network host \
|
||||
nineseconds/mtg:2 simple-run \
|
||||
-n 1.1.1.1 -i prefer-ipv4 \
|
||||
-n 1.1.1.1 -t 1.0.0.1 -i prefer-ipv4 \
|
||||
0.0.0.0:"$PORT" "$SECRET" > /dev/null 2>&1
|
||||
|
||||
sleep 2
|
||||
@@ -299,7 +302,7 @@ SELF="$(realpath "$0")"
|
||||
while true; do
|
||||
clear
|
||||
echo -e "${MAGENTA}╔══════════════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e "${MAGENTA}║ SWIFTGRAM MANAGER (Professional) ║${NC}"
|
||||
echo -e "${MAGENTA}║ SWIFTGRAM MANAGER (v1.0.3) ║${NC}"
|
||||
echo -e "${MAGENTA}╚══════════════════════════════════════════════════════════════╝${NC}"
|
||||
docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$" && echo -e " Прокси: ${GREEN}РАБОТАЕТ${NC}" || echo -e " Прокси: ${RED}ВЫКЛЮЧЕН${NC}"
|
||||
systemctl is-active --quiet "$SERVICE_NAME" && echo -e " Бот: ${GREEN}РАБОТАЕТ${NC}" || echo -e " Бот: ${YELLOW}НЕ НАСТРОЕН${NC}"
|
||||
|
||||
Reference in New Issue
Block a user