diff --git a/frontend/src/lib/xray/outbound-form-adapter.ts b/frontend/src/lib/xray/outbound-form-adapter.ts
index 0b2c5bf6..86c69697 100644
--- a/frontend/src/lib/xray/outbound-form-adapter.ts
+++ b/frontend/src/lib/xray/outbound-form-adapter.ts
@@ -116,7 +116,7 @@ function vlessFromWire(raw: Raw): VlessOutboundFormSettings {
const testseed = savedSeed.length === 4
&& savedSeed.every((n) => Number.isInteger(n) && (n as number) > 0)
? (savedSeed as number[])
- : [];
+ : [900, 500, 900, 256];
return {
address,
port,
diff --git a/frontend/src/pages/inbounds/InboundFormModal.tsx b/frontend/src/pages/inbounds/InboundFormModal.tsx
index 484c8f6c..538d6da1 100644
--- a/frontend/src/pages/inbounds/InboundFormModal.tsx
+++ b/frontend/src/pages/inbounds/InboundFormModal.tsx
@@ -1428,6 +1428,21 @@ export default function InboundFormModal({
{t('pages.inbounds.vlessAuthSelected', { auth: selectedVlessAuth })}
+ {network === 'tcp' && (security === 'tls' || security === 'reality') && (
+
+ Array.isArray(v)
+ ? v.map((x) => Number(x)).filter((n) => Number.isInteger(n) && n > 0)
+ : []
+ }
+ extra="Applies only to clients using the xtls-rprx-vision flow; ignored otherwise."
+ >
+
+
+ )}
>
)}
diff --git a/frontend/src/test/__snapshots__/inbound-defaults.test.ts.snap b/frontend/src/test/__snapshots__/inbound-defaults.test.ts.snap
index daf1c4fe..8d64ae99 100644
--- a/frontend/src/test/__snapshots__/inbound-defaults.test.ts.snap
+++ b/frontend/src/test/__snapshots__/inbound-defaults.test.ts.snap
@@ -1,12 +1,5 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-exports[`createDefault*InboundSettings factories > http 1`] = `
-{
- "accounts": [],
- "allowTransparent": false,
-}
-`;
-
exports[`createDefault*InboundSettings factories > hysteria (v1, defaults to v2 wire version) 1`] = `
{
"clients": [],
@@ -14,15 +7,6 @@ exports[`createDefault*InboundSettings factories > hysteria (v1, defaults to v2
}
`;
-exports[`createDefault*InboundSettings factories > mixed 1`] = `
-{
- "accounts": [],
- "auth": "password",
- "ip": "127.0.0.1",
- "udp": false,
-}
-`;
-
exports[`createDefault*InboundSettings factories > shadowsocks 1`] = `
{
"clients": [],
diff --git a/frontend/src/test/inbound-defaults.test.ts b/frontend/src/test/inbound-defaults.test.ts
index 5ca6d44d..2e4487b8 100644
--- a/frontend/src/test/inbound-defaults.test.ts
+++ b/frontend/src/test/inbound-defaults.test.ts
@@ -112,13 +112,23 @@ describe('createDefault*InboundSettings factories', () => {
it('http', () => {
const s = createDefaultHttpInboundSettings();
- expect(s).toMatchSnapshot();
+ expect(s.allowTransparent).toBe(false);
+ const accounts = s.accounts ?? [];
+ expect(accounts).toHaveLength(1);
+ expect(accounts[0].user.length).toBe(8);
+ expect(accounts[0].pass.length).toBe(12);
expect(HttpInboundSettingsSchema.parse(s)).toEqual(s);
});
it('mixed', () => {
const s = createDefaultMixedInboundSettings();
- expect(s).toMatchSnapshot();
+ expect(s.auth).toBe('password');
+ expect(s.udp).toBe(false);
+ expect(s.ip).toBe('127.0.0.1');
+ const accounts = s.accounts ?? [];
+ expect(accounts).toHaveLength(1);
+ expect(accounts[0].user.length).toBe(8);
+ expect(accounts[0].pass.length).toBe(12);
expect(MixedInboundSettingsSchema.parse(s)).toEqual(s);
});