add dns resolver #159

This commit is contained in:
Alireza Ahmadi
2024-06-15 22:10:58 +02:00
parent 53ed86c373
commit b5a2dd18f5
6 changed files with 46 additions and 32 deletions
+1
View File
@@ -313,6 +313,7 @@ export default {
final: "Final", final: "Final",
server: "Server", server: "Server",
firstServer: "First Server", firstServer: "First Server",
addrResolver: "Address Resolver",
}, },
routing: { routing: {
title: "Routing", title: "Routing",
+1
View File
@@ -312,6 +312,7 @@ export default {
final: "سرور نهایی", final: "سرور نهایی",
server: "سرور", server: "سرور",
firstServer: "سرور نخست", firstServer: "سرور نخست",
addrResolver: "حل کننده دامنه",
}, },
routing: { routing: {
title: "مسیریابی", title: "مسیریابی",
+1
View File
@@ -314,6 +314,7 @@ export default {
final: "Cuối cùng", final: "Cuối cùng",
server: "Máy chủ", server: "Máy chủ",
firstServer: "Máy chủ Đầu tiên", firstServer: "Máy chủ Đầu tiên",
addrResolver: "Trình phân giải địa chỉ",
}, },
routing: { routing: {
title: "Định tuyến", title: "Định tuyến",
+1
View File
@@ -314,6 +314,7 @@ export default {
final: "最终", final: "最终",
server: "服务器", server: "服务器",
firstServer: "首选服务器", firstServer: "首选服务器",
addrResolver: "地址解析器",
}, },
routing: { routing: {
title: "路由", title: "路由",
+1
View File
@@ -315,6 +315,7 @@ export default {
final: "最終", final: "最終",
server: "服務器", server: "服務器",
firstServer: "首選服務器", firstServer: "首選服務器",
addrResolver: "地址解析器",
}, },
routing: { routing: {
title: "路由", title: "路由",
+41 -32
View File
@@ -3,10 +3,10 @@
<v-expansion-panel :title="$t('basic.log.title')"> <v-expansion-panel :title="$t('basic.log.title')">
<v-expansion-panel-text> <v-expansion-panel-text>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch v-model="appConfig.log.disabled" color="primary" :label="$t('disable')" hide-details></v-switch> <v-switch v-model="appConfig.log.disabled" color="primary" :label="$t('disable')" hide-details></v-switch>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-select <v-select
hide-details hide-details
:label="$t('basic.log.level')" :label="$t('basic.log.level')"
@@ -14,14 +14,14 @@
v-model="appConfig.log.level"> v-model="appConfig.log.level">
</v-select> </v-select>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field <v-text-field
v-model="appConfig.log.output" v-model="appConfig.log.output"
hide-details hide-details
:label="$t('basic.log.output')" :label="$t('basic.log.output')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch v-model="appConfig.log.timestamp" color="primary" :label="$t('basic.log.timestamp')" hide-details></v-switch> <v-switch v-model="appConfig.log.timestamp" color="primary" :label="$t('basic.log.timestamp')" hide-details></v-switch>
</v-col> </v-col>
</v-row> </v-row>
@@ -30,7 +30,7 @@
<v-expansion-panel title="DNS"> <v-expansion-panel title="DNS">
<v-expansion-panel-text> <v-expansion-panel-text>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-select <v-select
hide-details hide-details
:label="$t('basic.dns.final')" :label="$t('basic.dns.final')"
@@ -38,7 +38,7 @@
v-model="finalDns"> v-model="finalDns">
</v-select> </v-select>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-select <v-select
hide-details hide-details
:label="$t('listen.domainStrategy')" :label="$t('listen.domainStrategy')"
@@ -48,7 +48,7 @@
v-model="appConfig.dns.strategy"> v-model="appConfig.dns.strategy">
</v-select> </v-select>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" align-self="center"> <v-col cols="12" sm="6" md="3" lg="2" align-self="center">
<v-btn @click="addDnsServer" rounded> <v-btn @click="addDnsServer" rounded>
<v-icon icon="mdi-plus" />{{ $t('basic.dns.server') }} <v-icon icon="mdi-plus" />{{ $t('basic.dns.server') }}
</v-btn> </v-btn>
@@ -58,7 +58,7 @@
{{ $t('basic.dns.server') + ' ' + (index+1) }} <v-icon icon="mdi-delete" @click="appConfig.dns.servers.splice(index,1)" /> {{ $t('basic.dns.server') + ' ' + (index+1) }} <v-icon icon="mdi-delete" @click="appConfig.dns.servers.splice(index,1)" />
<v-divider></v-divider> <v-divider></v-divider>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field <v-text-field
v-model="s.tag" v-model="s.tag"
hide-details hide-details
@@ -67,14 +67,23 @@
:label="$t('objects.tag')" :label="$t('objects.tag')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field <v-text-field
v-model="s.address" v-model="s.address"
hide-details hide-details
:label="$t('out.addr')" :label="$t('out.addr')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field
v-model="s.address_resolver"
hide-details
clearable
@click:clear="delete s.address_resolver"
:label="$t('basic.dns.addrResolver')"
></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="3" lg="2">
<v-select <v-select
hide-details hide-details
:label="$t('objects.outbound')" :label="$t('objects.outbound')"
@@ -84,7 +93,7 @@
v-model="s.detour"> v-model="s.detour">
</v-select> </v-select>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-select <v-select
hide-details hide-details
:label="$t('listen.domainStrategy')" :label="$t('listen.domainStrategy')"
@@ -101,17 +110,17 @@
<v-expansion-panel title="NTP"> <v-expansion-panel title="NTP">
<v-expansion-panel-text> <v-expansion-panel-text>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch v-model="enableNtp" color="primary" :label="$t('enable')" hide-details></v-switch> <v-switch v-model="enableNtp" color="primary" :label="$t('enable')" hide-details></v-switch>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.ntp?.enabled"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.ntp?.enabled">
<v-text-field <v-text-field
v-model="appConfig.ntp.server" v-model="appConfig.ntp.server"
hide-details hide-details
:label="$t('out.addr')" :label="$t('out.addr')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.ntp?.enabled"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.ntp?.enabled">
<v-text-field <v-text-field
v-model="appConfig.ntp.server_port" v-model="appConfig.ntp.server_port"
hide-details hide-details
@@ -121,7 +130,7 @@
:label="$t('out.port')" :label="$t('out.port')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.ntp?.enabled"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.ntp?.enabled">
<v-text-field <v-text-field
v-model="ntpInterval" v-model="ntpInterval"
hide-details hide-details
@@ -138,7 +147,7 @@
<v-expansion-panel :title="$t('basic.routing.title')"> <v-expansion-panel :title="$t('basic.routing.title')">
<v-expansion-panel-text> <v-expansion-panel-text>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-select <v-select
hide-details hide-details
:label="$t('basic.routing.defaultOut')" :label="$t('basic.routing.defaultOut')"
@@ -148,7 +157,7 @@
v-model="appConfig.route.final"> v-model="appConfig.route.final">
</v-select> </v-select>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field <v-text-field
v-model="appConfig.route.default_interface" v-model="appConfig.route.default_interface"
hide-details hide-details
@@ -157,7 +166,7 @@
:label="$t('basic.routing.defaultIf')" :label="$t('basic.routing.defaultIf')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field <v-text-field
v-model.number="routeMark" v-model.number="routeMark"
hide-details hide-details
@@ -166,7 +175,7 @@
:label="$t('basic.routing.defaultRm')" :label="$t('basic.routing.defaultRm')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch <v-switch
v-model="appConfig.route.auto_detect_interface" v-model="appConfig.route.auto_detect_interface"
color="primary" color="primary"
@@ -182,24 +191,24 @@
Cache File Cache File
<v-divider></v-divider> <v-divider></v-divider>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch v-model="enableCacheFile" color="primary" :label="$t('enable')" hide-details></v-switch> <v-switch v-model="enableCacheFile" color="primary" :label="$t('enable')" hide-details></v-switch>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.cache_file"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.cache_file">
<v-text-field <v-text-field
v-model="appConfig.experimental.cache_file.path" v-model="appConfig.experimental.cache_file.path"
hide-details hide-details
:label="$t('transport.path')" :label="$t('transport.path')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.cache_file"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.cache_file">
<v-text-field <v-text-field
v-model="appConfig.experimental.cache_file.cache_id" v-model="appConfig.experimental.cache_file.cache_id"
hide-details hide-details
label="Cache ID" label="Cache ID"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.cache_file"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.cache_file">
<v-switch v-model="appConfig.experimental.cache_file.store_fakeip" <v-switch v-model="appConfig.experimental.cache_file.store_fakeip"
color="primary" color="primary"
:label="$t('basic.exp.storeFakeIp')" :label="$t('basic.exp.storeFakeIp')"
@@ -209,45 +218,45 @@
Clash API Clash API
<v-divider></v-divider> <v-divider></v-divider>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch v-model="enableClashApi" color="primary" :label="$t('enable')" hide-details></v-switch> <v-switch v-model="enableClashApi" color="primary" :label="$t('enable')" hide-details></v-switch>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.clash_api"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.clash_api">
<v-text-field <v-text-field
v-model="appConfig.experimental.clash_api.external_controller" v-model="appConfig.experimental.clash_api.external_controller"
hide-details hide-details
label="External Controller" label="External Controller"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.clash_api"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.clash_api">
<v-text-field <v-text-field
v-model="appConfig.experimental.clash_api.external_ui" v-model="appConfig.experimental.clash_api.external_ui"
hide-details hide-details
label="External UI" label="External UI"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.clash_api"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.clash_api">
<v-text-field <v-text-field
v-model="appConfig.experimental.clash_api.external_ui_download_url" v-model="appConfig.experimental.clash_api.external_ui_download_url"
hide-details hide-details
label="UI Download URL" label="UI Download URL"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.clash_api"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.clash_api">
<v-text-field <v-text-field
v-model="appConfig.experimental.clash_api.external_ui_download_detour" v-model="appConfig.experimental.clash_api.external_ui_download_detour"
hide-details hide-details
label="UI Download detour" label="UI Download detour"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.clash_api"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.clash_api">
<v-text-field <v-text-field
v-model="appConfig.experimental.clash_api.secret" v-model="appConfig.experimental.clash_api.secret"
hide-details hide-details
label="Secret" label="Secret"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3" v-if="appConfig.experimental.clash_api"> <v-col cols="12" sm="6" md="3" lg="2" v-if="appConfig.experimental.clash_api">
<v-text-field <v-text-field
v-model="appConfig.experimental.clash_api.default_mode" v-model="appConfig.experimental.clash_api.default_mode"
hide-details hide-details
@@ -258,14 +267,14 @@
V2Ray API V2Ray API
<v-divider></v-divider> <v-divider></v-divider>
<v-row> <v-row>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-text-field <v-text-field
v-model="appConfig.experimental.v2ray_api.listen" v-model="appConfig.experimental.v2ray_api.listen"
hide-details hide-details
:label="$t('objects.listen')" :label="$t('objects.listen')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" md="3"> <v-col cols="12" sm="6" md="3" lg="2">
<v-switch v-model="appConfig.experimental.v2ray_api.stats.enabled" <v-switch v-model="appConfig.experimental.v2ray_api.stats.enabled"
color="primary" color="primary"
:label="$t('stats.enable')" :label="$t('stats.enable')"