diff --git a/assets/translations/strings_en.i18n.json b/assets/translations/strings_en.i18n.json index 8032ddfd..23451f35 100644 --- a/assets/translations/strings_en.i18n.json +++ b/assets/translations/strings_en.i18n.json @@ -216,6 +216,7 @@ "directDnsDomainStrategy": "Direct DNS Domain Strategy", "mixedPort": "Mixed Port", "localDnsPort": "Local DNS Port", + "allowConnectionFromLan": "Allow Connection from LAN", "tunImplementation": "TUN Implementation", "mtu": "MTU", "connectionTestUrl": "Connection Test URL", diff --git a/assets/translations/strings_fa.i18n.json b/assets/translations/strings_fa.i18n.json index 5779d291..e154af38 100644 --- a/assets/translations/strings_fa.i18n.json +++ b/assets/translations/strings_fa.i18n.json @@ -216,6 +216,7 @@ "directDnsDomainStrategy": "حالت DNS مستقیم", "mixedPort": "پورت همه منظوره", "localDnsPort": "پورت DNS داخلی", + "allowConnectionFromLan": "Allow Connection from LAN", "tunImplementation": "مدل تونل", "mtu": "سایز بسته‌ها", "connectionTestUrl": "لینک تست اتصال", diff --git a/assets/translations/strings_ru.i18n.json b/assets/translations/strings_ru.i18n.json index 652f145c..de7116a8 100644 --- a/assets/translations/strings_ru.i18n.json +++ b/assets/translations/strings_ru.i18n.json @@ -214,6 +214,7 @@ "directDnsDomainStrategy": "Стратегия прямого домена DNS", "mixedPort": "Смешанный порт", "localDnsPort": "Локальный порт DNS", + "allowConnectionFromLan": "Allow Connection from LAN", "tunImplementation": "Реализация TUN", "mtu": "MTU", "connectionTestUrl": "URL проверки подключения", diff --git a/assets/translations/strings_tr.i18n.json b/assets/translations/strings_tr.i18n.json index 8f39ba89..bad81b1b 100644 --- a/assets/translations/strings_tr.i18n.json +++ b/assets/translations/strings_tr.i18n.json @@ -214,6 +214,7 @@ "directDnsDomainStrategy": "Doğrudan DNS Domain Stratejisi", "mixedPort": "Mixed Port", "localDnsPort": "Yerel DNS Bağlantı Noktası", + "allowConnectionFromLan": "Allow Connection from LAN", "tunImplementation": "TUN İmplementasyonu", "mtu": "MTU", "connectionTestUrl": "Bağlantı Testi URL'i", diff --git a/assets/translations/strings_zh-CN.i18n.json b/assets/translations/strings_zh-CN.i18n.json index 3a085874..fdc17a27 100644 --- a/assets/translations/strings_zh-CN.i18n.json +++ b/assets/translations/strings_zh-CN.i18n.json @@ -214,6 +214,7 @@ "directDnsDomainStrategy": "直连 DNS 域名策略", "mixedPort": "混合端口", "localDnsPort": "本地 DNS 端口", + "allowConnectionFromLan": "Allow Connection from LAN", "tunImplementation": "TUN 实现", "mtu": "MTU", "connectionTestUrl": "连接测试网址", diff --git a/lib/features/config_option/data/config_option_repository.dart b/lib/features/config_option/data/config_option_repository.dart index 64356202..bffaa6ec 100644 --- a/lib/features/config_option/data/config_option_repository.dart +++ b/lib/features/config_option/data/config_option_repository.dart @@ -103,6 +103,7 @@ class ConfigOptionRepositoryImpl enableTun: persisted.serviceMode == ServiceMode.tun, setSystemProxy: persisted.serviceMode == ServiceMode.systemProxy, bypassLan: persisted.bypassLan, + allowConnectionFromLan: persisted.allowConnectionFromLan, enableFakeDns: persisted.enableFakeDns, enableDnsRouting: persisted.enableDnsRouting, independentDnsCache: persisted.independentDnsCache, diff --git a/lib/features/config_option/model/config_option_entity.dart b/lib/features/config_option/model/config_option_entity.dart index 331f0d34..b30b86be 100644 --- a/lib/features/config_option/model/config_option_entity.dart +++ b/lib/features/config_option/model/config_option_entity.dart @@ -37,6 +37,7 @@ class ConfigOptionEntity with _$ConfigOptionEntity { @Default(true) bool enableClashApi, @Default(6756) int clashApiPort, @Default(false) bool bypassLan, + @Default(false) bool allowConnectionFromLan, @Default(false) bool enableFakeDns, @Default(true) bool enableDnsRouting, @Default(true) bool independentDnsCache, @@ -96,6 +97,8 @@ class ConfigOptionEntity with _$ConfigOptionEntity { enableClashApi: patch.enableClashApi ?? enableClashApi, clashApiPort: patch.clashApiPort ?? clashApiPort, bypassLan: patch.bypassLan ?? bypassLan, + allowConnectionFromLan: + patch.allowConnectionFromLan ?? allowConnectionFromLan, enableFakeDns: patch.enableFakeDns ?? enableFakeDns, enableDnsRouting: patch.enableDnsRouting ?? enableDnsRouting, independentDnsCache: patch.independentDnsCache ?? independentDnsCache, diff --git a/lib/features/config_option/model/config_option_patch.dart b/lib/features/config_option/model/config_option_patch.dart index ef19c0e9..d288a759 100644 --- a/lib/features/config_option/model/config_option_patch.dart +++ b/lib/features/config_option/model/config_option_patch.dart @@ -31,6 +31,7 @@ class ConfigOptionPatch with _$ConfigOptionPatch { bool? enableClashApi, int? clashApiPort, bool? bypassLan, + bool? allowConnectionFromLan, bool? enableFakeDns, bool? enableDnsRouting, bool? independentDnsCache, diff --git a/lib/features/config_option/overview/config_options_page.dart b/lib/features/config_option/overview/config_options_page.dart index 3a5670ea..f9228f77 100644 --- a/lib/features/config_option/overview/config_options_page.dart +++ b/lib/features/config_option/overview/config_options_page.dart @@ -257,6 +257,13 @@ class ConfigOptionsPage extends HookConsumerWidget { ); }, ), + SwitchListTile( + title: Text(t.settings.config.allowConnectionFromLan), + value: options.allowConnectionFromLan, + onChanged: (value) => changeOption( + ConfigOptionPatch(allowConnectionFromLan: value), + ), + ), const SettingsDivider(), SettingsSection(t.settings.config.section.tlsTricks), SwitchListTile( diff --git a/lib/singbox/model/singbox_config_option.dart b/lib/singbox/model/singbox_config_option.dart index 5e67d479..d57e1ce1 100644 --- a/lib/singbox/model/singbox_config_option.dart +++ b/lib/singbox/model/singbox_config_option.dart @@ -35,6 +35,7 @@ class SingboxConfigOption with _$SingboxConfigOption { required bool enableTun, required bool setSystemProxy, required bool bypassLan, + required bool allowConnectionFromLan, required bool enableFakeDns, required bool enableDnsRouting, required bool independentDnsCache,