fix: optimize port occupancy detection

This commit is contained in:
libm committed 2025-05-07 15:48:19 +08:00
1 parent 9478956a43
commit 0e147babf8
2 files changed
+10 -8

No files matched your search

+2 -2
View File
@@ -2,7 +2,7 @@
# shellcheck disable=SC2155
function clashon() {
_get_kernel_port
_get_proxy_port
sudo systemctl start "$BIN_KERNEL_NAME" && _okcat '已开启代理环境' ||
_failcat '启动失败: 执行 "clashstatus" 查看日志' || return 1
@@ -56,7 +56,7 @@ function clashstatus() {
function clashui() {
# 防止tun模式强制走代理获取不到真实公网ip
clashoff >&/dev/null
_get_kernel_port
_get_ui_port
# 公网ip
# ifconfig.me
local query_url='api64.ipify.org'
+8 -6
View File
@@ -119,15 +119,10 @@ _get_random_port() {
_get_random_port
}
function _get_kernel_port() {
function _get_proxy_port() {
local mixed_port=$(sudo "$BIN_YQ" '.mixed-port // ""' $CLASH_CONFIG_RUNTIME)
local ext_addr=$(sudo "$BIN_YQ" '.external-controller // ""' $CLASH_CONFIG_RUNTIME)
local ext_port=${ext_addr##*:}
MIXED_PORT=${mixed_port:-7890}
UI_PORT=${ext_port:-9090}
# 端口占用场景
_is_already_in_use "$MIXED_PORT" "$BIN_KERNEL_NAME" && {
local newPort=$(_get_random_port)
local msg="端口占用:${MIXED_PORT} 🎲 随机分配:$newPort"
@@ -135,6 +130,13 @@ function _get_kernel_port() {
MIXED_PORT=$newPort
_failcat '🎯' "$msg"
}
}
function _get_ui_port() {
local ext_addr=$(sudo "$BIN_YQ" '.external-controller // ""' $CLASH_CONFIG_RUNTIME)
local ext_port=${ext_addr##*:}
UI_PORT=${ext_port:-9090}
_is_already_in_use "$UI_PORT" "$BIN_KERNEL_NAME" && {
local newPort=$(_get_random_port)
local msg="端口占用:${UI_PORT} 🎲 随机分配:$newPort"