入站详情可以测常用 AI 服务的可访问性
release / release (push) Successful in 29s

判定按状态码白名单而不是只认 200:探测不带鉴权,OpenAI 回 401、Anthropic 回 405
才是正常应答,说明 TLS 握手、路由、目标服务全都正常。清单和白名单照 sub2api 的
代理质量检查抄来。

失败文案不照抄 Bun:本机端口没人监听时它给的是「Unable to connect. Is the
computer able to access the url?」,把矛头指向目标网址,而真正的原因在本机。

对话框留在 InboundDetail 而不是提到 RouterPage——它不写配置文件也不改内核状态,
不需要走那条 commit 链路。firstPort 挪进 shared/inbounds.ts,两个页面都要用它了。
This commit is contained in:
2026-08-31 03:59:08 +08:00
parent 7d2a3afff0
commit 3d7304dd22
12 changed files with 716 additions and 34 deletions
+2 -2
View File
@@ -9,7 +9,7 @@
* 除了「检测公网 IP」,全部只读。
*/
import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
import { collectInbounds, inboundStatKey } from '@shared/inbounds.ts'
import { collectInbounds, firstPort, inboundStatKey } from '@shared/inbounds.ts'
import { flagEmoji, formatBytes, formatUptime } from '@shared/format.ts'
import { ACTIVE_BYTES, ROUTE_WINDOW_MS, bucketRates, lastRate, windowBytes } from '@shared/telemetry.ts'
import type { RouteSample } from '@shared/telemetry.ts'
@@ -29,7 +29,7 @@ import {
totals,
traffic,
} from '../telemetry'
import { firstPort, kernelPorts, modeLabel } from '../dashboard'
import { kernelPorts, modeLabel } from '../dashboard'
import { cssColor, themeTick } from '../theme'
import EChart from '../components/EChart.vue'
import ConfirmDialog from '../components/ConfirmDialog.vue'