fix: unify backend port to 18080 and make validator targets configurable

- Set default API port to 18080 in config.py
- Add configurable validation_targets to SettingsSchema and DEFAULT_SETTINGS
- Update ValidatorService to support runtime test URL updates
- Hot-reload validation_targets from DB on startup and on settings save
- Add domestic fallback URLs (baidu.com, qq.com) to reduce foreign dependency risk
- Update Settings.vue to allow adding/removing validator target URLs in UI
This commit is contained in:
祀梦
2026-04-04 22:47:54 +08:00
parent b972b64616
commit 49e440cb41
7 changed files with 107 additions and 10 deletions

View File

@@ -130,6 +130,27 @@
/>
</el-form-item>
<el-form-item label="验证目标地址" prop="validation_targets">
<el-select
v-model="settings.validation_targets"
multiple
filterable
allow-create
default-first-option
placeholder="输入并按回车添加验证 URL"
class="setting-input"
style="width: 500px;"
>
<el-option
v-for="url in defaultValidationTargets"
:key="url"
:label="url"
:value="url"
/>
</el-select>
<span class="setting-hint">代理验证时将随机轮询这些地址建议包含多个国内外站点</span>
</el-form-item>
<el-form-item label="自动验证间隔" prop="validate_interval_minutes">
<el-input-number
v-model="settings.validate_interval_minutes"
@@ -218,9 +239,19 @@ const settings = reactive({
min_proxy_score: 0,
proxy_expiry_days: 7,
auto_validate: true,
validate_interval_minutes: 30
validate_interval_minutes: 30,
validation_targets: []
})
const defaultValidationTargets = [
'http://httpbin.org/ip',
'https://httpbin.org/ip',
'http://api.ipify.org',
'https://api.ipify.org',
'http://www.baidu.com',
'http://www.qq.com'
]
// ==================== 计算属性 ====================
const schedulerInfo = computed(() => {
if (schedulerRunning.value) {