diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js
index 5d8c983..2a30654 100644
--- a/packages/core/src/config/index.js
+++ b/packages/core/src/config/index.js
@@ -325,7 +325,7 @@ module.exports = {
enabled: true,
interval: 300000,
hostnameList: ['github.com'],
- dnsProviders: ['usa', 'quad9', 'rubyfish']
+ dnsProviders: ['safe360', 'cloudflare', 'rubyfish']
}
}
},
diff --git a/packages/gui/package.json b/packages/gui/package.json
index 7ff3966..29e80f6 100644
--- a/packages/gui/package.json
+++ b/packages/gui/package.json
@@ -52,7 +52,7 @@
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-standard": "^5.1.2",
"babel-eslint": "^10.1.0",
- "electron": "17.1.0",
+ "electron": "30.0.3",
"electron-devtools-installer": "^3.1.0",
"electron-icon-builder": "^2.0.1",
"eslint": "^6.7.2",
diff --git a/packages/gui/src/view/pages/plugin/pip.vue b/packages/gui/src/view/pages/plugin/pip.vue
index ccf6cdc..294d58f 100644
--- a/packages/gui/src/view/pages/plugin/pip.vue
+++ b/packages/gui/src/view/pages/plugin/pip.vue
@@ -32,6 +32,12 @@
aliyun镜像
+
+ 北京外国语大学镜像
+
+
+ 南京大学镜像
+
设置后立即生效,即使关闭ds也会继续保持
diff --git a/packages/mitmproxy/src/lib/dns/https.js b/packages/mitmproxy/src/lib/dns/https.js
index d2c6807..ef1cf56 100644
--- a/packages/mitmproxy/src/lib/dns/https.js
+++ b/packages/mitmproxy/src/lib/dns/https.js
@@ -4,48 +4,43 @@ const BaseDNS = require('./base')
const log = require('../../utils/util.log')
const dohQueryAsync = promisify(doh.query)
-const PRESETS = {
- 'github.com': ['20.27.177.113', '20.205.243.166', '20.200.245.247'],
- 'api.github.com': ['20.27.177.116', '20.205.243.168', '20.200.245.245']
-}
-
-class DNSOverHTTPS extends BaseDNS {
- constructor (dnsServer) {
+module.exports = class DNSOverHTTPS extends BaseDNS {
+ constructor(dnsServer) {
super()
this.dnsServer = dnsServer
- this.lastLookupError = null // 添加属性来记录最后一次查询错误
}
- processQueryResult (result) {
- if (result.answers.length === 0) {
- log.error('该域名没有ip地址解析:', result.name)
- return []
+ async _lookup(hostname) {
+ // 直接判断域名是否为example.com
+ if (hostname === 'github.com') {
+ log.info('域名github.com使用内置IP集')
+ // 返回预设的IP地址集
+ return ['20.27.177.113', '20.205.243.166', '20.200.245.247']
+ // 20.27.177.113日本(三网平均延时88MS(三网优秀)) 20.205.243.166新加坡(三网平均延时96MS(电信联通106.5平均延时,移动平均77MS)) 20.200.245.247韩国(三网平均108ms(移动平均120ms))
}
- return result.answers
- .filter(item => item.type === 'A')
- .map(item => item.data)
- }
-
- async _lookup (hostname) {
- const preset = PRESETS[hostname]
- if (preset) {
- log.debug(`使用预设IP集:${hostname}`)
- return preset
+ // 直接判断域名是否为example.com
+ if (hostname === 'github.com') {
+ log.info('域名github.com使用内置IP集')
+ // 返回预设的IP地址集
+ return ['20.27.177.116', '20.205.243.168', '20.200.245.245']
}
try {
const result = await dohQueryAsync({ url: this.dnsServer }, [{ type: 'A', name: hostname }])
- const ips = this.processQueryResult(result)
- if (ips.length > 0) {
- log.info('获取到域名地址:', hostname, ips)
+ if (result.answers.length === 0) {
+ // 说明没有获取到ip
+ log.info('该域名没有ip地址解析:', hostname)
+ return []
}
- this.lastLookupError = null // 重置错误记录
- return ips
+ const ret = result.answers.filter(item => item.type === 'A').map(item => item.data)
+ if (ret.length === 0) {
+ log.info('该域名没有IPv4地址解析:', hostname)
+ } else {
+ log.info('获取到域名地址:', hostname, JSON.stringify(ret))
+ }
+ return ret
} catch (e) {
- log.error('DNS查询错误:', hostname, ', DNS服务器:', this.dnsServer, ', 错误:', e)
- this.lastLookupError = e // 记录错误
- throw e // 重新抛出错误,让调用者处理
+ log.warn('DNS query error:', hostname, ', dns:', this.dnsServer, ', error:', e)
+ return []
}
}
-}
-
-module.exports = DNSOverHTTPS
+}
\ No newline at end of file