diff options
Diffstat (limited to 'web/html')
| -rw-r--r-- | web/html/xui/form/outbound.html | 30 | ||||
| -rw-r--r-- | web/html/xui/settings.html | 55 |
2 files changed, 77 insertions, 8 deletions
diff --git a/web/html/xui/form/outbound.html b/web/html/xui/form/outbound.html index 61af06e0..a579b7a6 100644 --- a/web/html/xui/form/outbound.html +++ b/web/html/xui/form/outbound.html @@ -22,6 +22,9 @@ <a-select-option v-for="s in OutboundDomainStrategies" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> + <a-form-item label='Timeout'> + <a-input-number v-model.number="outbound.settings.timeout" min="0" ></a-input-number> + </a-form-item> <a-form-item label='Fragment'> <a-switch :checked="Object.keys(outbound.settings.fragment).length >0" @change="checked => outbound.settings.fragment = checked ? new Outbound.FreedomSettings.Fragment() : {}"></a-switch> </a-form-item> @@ -38,6 +41,17 @@ <a-input v-model.trim="outbound.settings.fragment.interval"></a-input> </a-form-item> </template> + <a-form-item label='Noise'> + <a-switch :checked="Object.keys(outbound.settings.noise).length >0" @change="checked => outbound.settings.noise = checked ? new Outbound.FreedomSettings.Noise() : {}"></a-switch> + </a-form-item> + <template v-if="Object.keys(outbound.settings.noise).length >0"> + <a-form-item label='Packets'> + <a-input v-model.trim="outbound.settings.noise.packets"></a-input> + </a-form-item> + <a-form-item label='Delay'> + <a-input v-model.trim="outbound.settings.noise.delay"></a-input> + </a-form-item> + </template> </template> <!-- blackhole settings --> @@ -95,10 +109,10 @@ </a-select> </a-form-item> <a-form-item label='MTU'> - <a-input-number v-model.number="outbound.settings.mtu"></a-input-number> + <a-input-number v-model.number="outbound.settings.mtu" min="0"></a-input-number> </a-form-item> <a-form-item label='Workers'> - <a-input-number min="0" v-model.number="outbound.settings.workers"></a-input-number> + <a-input-number v-model.number="outbound.settings.workers" min="0"></a-input-number> </a-form-item> <a-form-item label='Kernel Mode'> <a-switch v-model="outbound.settings.kernelMode"></a-switch> @@ -257,25 +271,25 @@ <a-input v-model="outbound.stream.kcp.seed"></a-input> </a-form-item> <a-form-item label='MTU'> - <a-input-number v-model.number="outbound.stream.kcp.mtu"></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.mtu" min="0"></a-input-number> </a-form-item> <a-form-item label='TTI (ms)'> - <a-input-number v-model.number="outbound.stream.kcp.tti"></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.tti" min="0"></a-input-number> </a-form-item> <a-form-item label='Uplink (MB/s)'> - <a-input-number v-model.number="outbound.stream.kcp.upCap"></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.upCap" min="0"></a-input-number> </a-form-item> <a-form-item label='Downlink (MB/s)'> - <a-input-number v-model.number="outbound.stream.kcp.downCap"></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.downCap" min="0"></a-input-number> </a-form-item> <a-form-item label='Congestion'> <a-switch v-model="outbound.stream.kcp.congestion"></a-switch> </a-form-item> <a-form-item label='Read Buffer (MB)'> - <a-input-number v-model.number="outbound.stream.kcp.readBuffer"></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.readBuffer" min="0"></a-input-number> </a-form-item> <a-form-item label='Write Buffer (MB)'> - <a-input-number v-model.number="outbound.stream.kcp.writeBuffer"></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.writeBuffer" min="0"></a-input-number> </a-form-item> </template> diff --git a/web/html/xui/settings.html b/web/html/xui/settings.html index f2379078..beab4df1 100644 --- a/web/html/xui/settings.html +++ b/web/html/xui/settings.html @@ -316,6 +316,24 @@ <a-list-item style="padding: 20px"> <a-row> <a-col :lg="24" :xl="12"> + <a-list-item-meta title='Noise'> + <template slot="description">{{ i18n "pages.settings.noiseDesc"}}</template> + </a-list-item-meta> + </a-col> + <a-col :lg="24" :xl="12"> + <a-switch v-model="noise"></a-switch> + </a-col> + </a-row> + <a-collapse v-if="noise" style="margin-top: 14px;"> + <a-collapse-panel header='{{ i18n "pages.settings.noiseSett"}}' v-if="noise"> + <setting-list-item style="padding: 10px 20px" type="text" title='Packets' v-model="noisePackets" placeholder="rand:5-10"></setting-list-item> + <setting-list-item style="padding: 10px 20px" type="text" title='Delay' v-model="noiseDelay" placeholder="5-10"></setting-list-item> + </a-collapse-panel> + </a-collapse> + </a-list-item> + <a-list-item style="padding: 20px"> + <a-row> + <a-col :lg="24" :xl="12"> <a-list-item-meta title='{{ i18n "pages.settings.mux"}}'> <template slot="description">{{ i18n "pages.settings.muxDesc"}}</template> </a-list-item-meta> @@ -412,6 +430,17 @@ } } }, + defaultNoise: { + tag: "noise", + protocol: "freedom", + settings: { + domainStrategy: "AsIs", + noise: { + packets: "rand:5-10", + delay: "5-10", + } + }, + }, defaultMux: { enabled: true, concurrency: 8, @@ -611,6 +640,32 @@ } } }, + noise: { + get: function () { return this.allSetting?.subJsonNoise != ""; }, + set: function (v) { + this.allSetting.subJsonNoise = v ? JSON.stringify(this.defaultNoise) : ""; + } + }, + noisePackets: { + get: function () { return this.noise ? JSON.parse(this.allSetting.subJsonNoise).settings.noise.packets : ""; }, + set: function (v) { + if (v != "") { + newNoise = JSON.parse(this.allSetting.subJsonNoise); + newNoise.settings.noise.packets = v; + this.allSetting.subJsonNoise = JSON.stringify(newNoise); + } + } + }, + noiseDelay: { + get: function () { return this.noise ? JSON.parse(this.allSetting.subJsonNoise).settings.noise.delay : ""; }, + set: function (v) { + if (v != "") { + newNoise = JSON.parse(this.allSetting.subJsonNoise); + newNoise.settings.noise.delay = v; + this.allSetting.subJsonNoise = JSON.stringify(newNoise); + } + } + }, enableMux: { get: function () { return this.allSetting?.subJsonMux != ""; }, set: function (v) { |
