Simplify menu and add test exit IP

This commit is contained in:
mango
2026-03-21 01:14:00 +08:00
parent 8f1171fe99
commit 5c1e9adb6f

View File

@@ -284,6 +284,18 @@ verify_routes() {
ip rule show | grep -E "100|110" | sed 's/^/ /' || echo " (无)"
}
test_exit_ip() {
section "测试出口 IP"
info "查询当前出口 IP..."
local exit_ip
exit_ip="$(curl -4 --connect-timeout 5 --max-time 10 -s https://api.ipify.org 2>/dev/null || echo "查询失败")"
echo
success "当前出口 IP: $exit_ip"
echo
}
test_connectivity() {
load_config
@@ -428,27 +440,26 @@ show_status() {
show_menu() {
clear
echo -e "${BOLD}${CYAN}"
echo "╔════════════════════════════════════════════╗"
echo "║ 默认出站源地址管理器 Pro v2.0 ║"
echo "╚════════════════════════════════════════════╝"
echo -e "${RESET}"
echo "================================"
echo " 默认出站源地址管理器 v2.0"
echo "================================"
echo
show_status 2>/dev/null || echo
echo
echo -e "${BOLD}功能菜单${RESET}"
echo
echo " ${GREEN}1${RESET}) 检测网络环境"
echo " ${GREEN}2${RESET}) 应用内网 IP 默认出站"
echo " ${GREEN}3${RESET}) 恢复公网 IP 默认出站"
echo " ${GREEN}4${RESET}) 测试连通性"
echo " ${GREEN}5${RESET}) 查看详细状态"
echo " ${GREEN}6${RESET}) 安装开机自启"
echo " ${GREEN}7${RESET}) 移除开机自启"
echo " ${GREEN}8${RESET}) 清理策略规则"
echo " ${GREEN}9${RESET}) 查看操作日志"
echo " ${RED}0${RESET}) 退出"
echo "功能菜单"
echo "--------"
echo " 1) 检测网络环境"
echo " 2) 应用内网 IP 默认出站"
echo " 3) 恢复公网 IP 默认出站"
echo " 4) 测试出口 IP"
echo " 5) 测试连通性"
echo " 6) 查看详细状态"
echo " 7) 安装开机自启"
echo " 8) 移除开机自启"
echo " 9) 清理策略规则"
echo " 0) 退出"
echo
}
@@ -478,10 +489,14 @@ main() {
read -rp "按回车继续..."
;;
4)
test_connectivity
test_exit_ip
read -rp "按回车继续..."
;;
5)
test_connectivity
read -rp "按回车继续..."
;;
6)
section "详细路由状态"
echo "主路由表:"
ip route show | sed 's/^/ /'
@@ -496,24 +511,19 @@ main() {
ip route show table 200 2>/dev/null | sed 's/^/ /' || echo " (空)"
read -rp "按回车继续..."
;;
6)
7)
install_service
read -rp "按回车继续..."
;;
7)
8)
remove_service
read -rp "按回车继续..."
;;
8)
9)
clean_policy
success "策略规则已清理"
read -rp "按回车继续..."
;;
9)
section "最近 20 条日志"
tail -20 "$LOG_FILE" 2>/dev/null || echo "日志为空"
read -rp "按回车继续..."
;;
0)
echo "再见!"
exit 0