2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-08 15:24:28 +08:00

feat(dns): 优化系统工具箱DNS设置以适配现代Linux系统 (#1202)

* Initial plan

* feat(dns): 优化系统工具箱DNS设置以适配现代Linux系统

- 创建 pkg/dns 包实现多种DNS管理方式
- 支持 NetworkManager (RHEL 9.x/10.x)
- 支持 netplan (Debian 12+/Ubuntu 22+)
- 回退到直接修改 /etc/resolv.conf
- 更新前端显示当前DNS管理方式
- 添加单元测试

Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>

* fix: 修复代码审查发现的问题

- 提取 shell 参数转义逻辑到独立函数
- 修正 netplan 配置文件选择的注释说明
- 使用常量替代硬编码的缩进值
- 添加前端空数组安全检查

Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>

* fix: 优化

* fix: 优化

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>
Co-authored-by: 耗子 <haozi@loli.email>
This commit is contained in:
Copilot
2026-01-09 06:33:23 +08:00
committed by GitHub
parent f2d3911266
commit 47537e282b
8 changed files with 845 additions and 16 deletions

View File

@@ -5020,6 +5020,10 @@ msgstr "Private Key"
msgid "DNS modifications will revert to default after system restart."
msgstr "DNS modifications will revert to default after system restart."
#: src/views/toolbox/SystemView.vue:93
msgid "Current DNS manager: %{ manager }"
msgstr "Current DNS manager: %{ manager }"
#: src/views/toolbox/SystemView.vue:92
msgid "Enter primary DNS server"
msgstr ""

View File

@@ -5163,6 +5163,10 @@ msgstr ""
msgid "DNS modifications will revert to default after system restart."
msgstr ""
#: src/views/toolbox/SystemView.vue:93
msgid "Current DNS manager: %{ manager }"
msgstr ""
#: src/views/toolbox/SystemView.vue:92
msgid "Enter primary DNS server"
msgstr ""

View File

@@ -4874,6 +4874,10 @@ msgstr "下载私钥"
msgid "DNS modifications will revert to default after system restart."
msgstr "DNS 修改将在系统重启后恢复为默认设置。"
#: src/views/toolbox/SystemView.vue:93
msgid "Current DNS manager: %{ manager }"
msgstr "当前 DNS 管理方式:%{ manager }"
#: src/views/toolbox/SystemView.vue:92
msgid "Enter primary DNS server"
msgstr "输入主 DNS 服务器"

View File

@@ -4856,6 +4856,10 @@ msgstr ""
msgid "DNS modifications will revert to default after system restart."
msgstr "DNS 修改將在系統重新啟動後恢復為預設設置。"
#: src/views/toolbox/SystemView.vue:93
msgid "Current DNS manager: %{ manager }"
msgstr "目前 DNS 管理方式:%{ manager }"
#: src/views/toolbox/SystemView.vue:92
msgid "Enter primary DNS server"
msgstr ""

View File

@@ -22,9 +22,12 @@ const timezone = ref('')
const timezones = ref<any[]>([])
const time = ref(DateTime.now().toMillis())
const dnsManager = ref('')
useRequest(system.dns()).onSuccess(({ data }) => {
dns1.value = data[0]
dns2.value = data[1]
dns1.value = data.dns?.[0] ?? ''
dns2.value = data.dns?.[1] ?? ''
dnsManager.value = data.manager
})
useRequest(system.swap()).onSuccess(({ data }) => {
swap.value = data.size
@@ -84,7 +87,14 @@ const handleSyncTime = () => {
<n-tabs v-model:value="currentTab" type="line" placement="left" animated>
<n-tab-pane name="dns" tab="DNS">
<n-flex vertical>
<n-alert type="warning">
<n-alert type="info">
{{
$gettext('Current DNS manager: %{ manager }', {
manager: dnsManager
})
}}
</n-alert>
<n-alert v-if="dnsManager === 'resolv.conf'" type="warning">
{{ $gettext('DNS modifications will revert to default after system restart.') }}
</n-alert>
<n-form>