fcdns 0.3.13 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +4 -0
- package/lib/cli.js +6 -2
- package/lib/cli.js.map +1 -1
- package/lib/hostname-list.js +20 -0
- package/lib/hostname-list.js.map +1 -0
- package/lib/router.js +9 -2
- package/lib/router.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.3.14](https://github.com/BlackGlory/fcdns/compare/v0.3.13...v0.3.14) (2022-04-16)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add hostname blacklist ([f196de1](https://github.com/BlackGlory/fcdns/commit/f196de13e742935ccdf4f67e1b54f73b057e15e8))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* make hostname list files optional ([ab2352f](https://github.com/BlackGlory/fcdns/commit/ab2352ff55dd05f947fa8eedd9dc6706e36c67ad))
|
|
16
|
+
|
|
5
17
|
### [0.3.13](https://github.com/BlackGlory/fcdns/compare/v0.3.12...v0.3.13) (2022-04-01)
|
|
6
18
|
|
|
7
19
|
### [0.3.12](https://github.com/BlackGlory/fcdns/compare/v0.3.11...v0.3.12) (2022-03-26)
|
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ Options:
|
|
|
21
21
|
--port <port> (default: "53")
|
|
22
22
|
--ip-whitelist <filename> (default: "ip-whitelist.txt")
|
|
23
23
|
--hostname-whitelist <filename> (default: "hostname-whitelist.txt")
|
|
24
|
+
--hostname-blacklist <filename> (default: "hostname-blacklist.txt")
|
|
24
25
|
--route-cache <filename> (default: "route.txt")
|
|
25
26
|
--test-cache <filename> (default: "test.txt")
|
|
26
27
|
--test-timeout <ms> (default: "200")
|
|
@@ -114,6 +115,9 @@ IPv6地址范围示例:
|
|
|
114
115
|
### 主机名白名单(hostname whitelist)
|
|
115
116
|
主机名白名单用于强制使某些主机名在解析时使用不可信DNS服务器, 其优先级高于fcdns里的其他规则.
|
|
116
117
|
|
|
118
|
+
### 主机名黑名单(hostname blacklist)
|
|
119
|
+
主机名白名单用于强制使某些主机名在解析时使用可信DNS服务器, 其优先级低于白名单, 高于fcdns里的其他规则.
|
|
120
|
+
|
|
117
121
|
#### 文件格式
|
|
118
122
|
白名单是一个文本文件, 以行为分隔符存储主机名模式.
|
|
119
123
|
主机名模式使用`*`作为通配符, 可以匹配任意个字符.
|
package/lib/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ const commander_1 = require("commander");
|
|
|
5
5
|
const server_1 = require("./server");
|
|
6
6
|
const router_1 = require("./router");
|
|
7
7
|
const ip_whitelist_1 = require("./ip-whitelist");
|
|
8
|
-
const
|
|
8
|
+
const hostname_list_1 = require("./hostname-list");
|
|
9
9
|
const tester_1 = require("./tester");
|
|
10
10
|
const create_dns_resolver_1 = require("./utils/create-dns-resolver");
|
|
11
11
|
const errors_1 = require("@blackglory/errors");
|
|
@@ -35,12 +35,14 @@ commander_1.program
|
|
|
35
35
|
});
|
|
36
36
|
const untrustedResolver = (0, create_dns_resolver_1.createDNSResolver)(options.untrustedServer);
|
|
37
37
|
const ipWhitelist = await ip_whitelist_1.IPWhitelist.create(options.ipWhitelistFilename);
|
|
38
|
-
const hostnameWhitelist = await
|
|
38
|
+
const hostnameWhitelist = await hostname_list_1.HostnameList.create(options.hostnameWhitelistFilename);
|
|
39
|
+
const hostnameBlacklist = await hostname_list_1.HostnameList.create(options.hostnameBlacklistFilename);
|
|
39
40
|
const router = await router_1.Router.create({
|
|
40
41
|
tester,
|
|
41
42
|
untrustedResolver,
|
|
42
43
|
ipWhitelist,
|
|
43
44
|
hostnameWhitelist,
|
|
45
|
+
hostnameBlacklist,
|
|
44
46
|
cacheFilename: options.routeCacheFilename,
|
|
45
47
|
looseMode: options.looseMode
|
|
46
48
|
});
|
|
@@ -68,6 +70,7 @@ function getOptions() {
|
|
|
68
70
|
const port = Number.parseInt(opts.port, 10);
|
|
69
71
|
const ipWhitelistFilename = opts.ipWhitelist;
|
|
70
72
|
const hostnameWhitelistFilename = opts.hostnameWhitelist;
|
|
73
|
+
const hostnameBlacklistFilename = opts.hostnameBlacklist;
|
|
71
74
|
const routeCacheFilename = opts.routeCache;
|
|
72
75
|
const testCacheFilename = opts.testCache;
|
|
73
76
|
(0, errors_1.assert)(/^\d+$/.test(opts.testTimeout), 'The parameter test timeout must be integer');
|
|
@@ -81,6 +84,7 @@ function getOptions() {
|
|
|
81
84
|
port,
|
|
82
85
|
ipWhitelistFilename,
|
|
83
86
|
hostnameWhitelistFilename,
|
|
87
|
+
hostnameBlacklistFilename,
|
|
84
88
|
routeCacheFilename,
|
|
85
89
|
testCacheFilename,
|
|
86
90
|
testTimeout,
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,qCAAsC;AACtC,qCAAiC;AACjC,iDAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HostnameList = void 0;
|
|
4
|
+
const hostname_list_file_1 = require("./utils/hostname-list-file");
|
|
5
|
+
const extra_filesystem_1 = require("extra-filesystem");
|
|
6
|
+
class HostnameList {
|
|
7
|
+
constructor(patterns) {
|
|
8
|
+
this.patterns = patterns;
|
|
9
|
+
}
|
|
10
|
+
static async create(filename) {
|
|
11
|
+
await (0, extra_filesystem_1.ensureFile)(filename);
|
|
12
|
+
const patterns = await (0, hostname_list_file_1.readHostnameListFile)(filename);
|
|
13
|
+
return new HostnameList(patterns);
|
|
14
|
+
}
|
|
15
|
+
includes(hostname) {
|
|
16
|
+
return this.patterns.some(x => x.match(hostname));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.HostnameList = HostnameList;
|
|
20
|
+
//# sourceMappingURL=hostname-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostname-list.js","sourceRoot":"","sources":["../src/hostname-list.ts"],"names":[],"mappings":";;;AAAA,kEAAgE;AAEhE,uDAA6C;AAE7C,MAAa,YAAY;IACvB,YAA4B,QAA2B;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAClC,MAAM,IAAA,6BAAU,EAAC,QAAQ,CAAC,CAAA;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAA,yCAAoB,EAAC,QAAQ,CAAC,CAAA;QAErD,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnD,CAAC;CACF;AAbD,oCAaC"}
|
package/lib/router.js
CHANGED
|
@@ -9,7 +9,7 @@ var Target;
|
|
|
9
9
|
Target[Target["Trusted"] = 1] = "Trusted";
|
|
10
10
|
})(Target = exports.Target || (exports.Target = {}));
|
|
11
11
|
class Router {
|
|
12
|
-
constructor(cacheFilename, cache, looseMode, tester, untrustedResolver, ipWhitelist, hostnameWhitelist) {
|
|
12
|
+
constructor(cacheFilename, cache, looseMode, tester, untrustedResolver, ipWhitelist, hostnameWhitelist, hostnameBlacklist) {
|
|
13
13
|
this.cacheFilename = cacheFilename;
|
|
14
14
|
this.cache = cache;
|
|
15
15
|
this.looseMode = looseMode;
|
|
@@ -17,21 +17,25 @@ class Router {
|
|
|
17
17
|
this.untrustedResolver = untrustedResolver;
|
|
18
18
|
this.ipWhitelist = ipWhitelist;
|
|
19
19
|
this.hostnameWhitelist = hostnameWhitelist;
|
|
20
|
+
this.hostnameBlacklist = hostnameBlacklist;
|
|
20
21
|
}
|
|
21
22
|
static async create(options) {
|
|
22
23
|
const tester = options.tester;
|
|
23
24
|
const untrustedResolver = options.untrustedResolver;
|
|
24
25
|
const ipWhitelist = options.ipWhitelist;
|
|
25
26
|
const hostnameWhitelist = options.hostnameWhitelist;
|
|
27
|
+
const hostnameBlacklist = options.hostnameBlacklist;
|
|
26
28
|
const cacheFilename = options.cacheFilename;
|
|
27
29
|
const looseMode = options.looseMode;
|
|
28
30
|
const cache = await (0, map_file_1.readMapFile)(cacheFilename);
|
|
29
31
|
await (0, map_file_1.writeMapFile)(cacheFilename, cache);
|
|
30
|
-
return new Router(cacheFilename, cache, looseMode, tester, untrustedResolver, ipWhitelist, hostnameWhitelist);
|
|
32
|
+
return new Router(cacheFilename, cache, looseMode, tester, untrustedResolver, ipWhitelist, hostnameWhitelist, hostnameBlacklist);
|
|
31
33
|
}
|
|
32
34
|
async getTarget(hostname) {
|
|
33
35
|
if (this.inHostnameWhitelist(hostname))
|
|
34
36
|
return Target.Untrusted;
|
|
37
|
+
if (this.inHostnameBlacklist(hostname))
|
|
38
|
+
return Target.Trusted;
|
|
35
39
|
if (this.cache.has(hostname)) {
|
|
36
40
|
return this.cache.get(hostname);
|
|
37
41
|
}
|
|
@@ -73,6 +77,9 @@ class Router {
|
|
|
73
77
|
inHostnameWhitelist(hostname) {
|
|
74
78
|
return this.hostnameWhitelist.includes(hostname);
|
|
75
79
|
}
|
|
80
|
+
inHostnameBlacklist(hostname) {
|
|
81
|
+
return this.hostnameBlacklist.includes(hostname);
|
|
82
|
+
}
|
|
76
83
|
setCache(hostname, result) {
|
|
77
84
|
this.cache.set(hostname, result);
|
|
78
85
|
(0, map_file_1.appendMapFile)(this.cacheFilename, hostname, result);
|
package/lib/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":";;;AAIA,8CAA0E;AAC1E,gDAA2C;AAE3C,IAAY,MAGX;AAHD,WAAY,MAAM;IAChB,6CAAa,CAAA;IACb,yCAAW,CAAA;AACb,CAAC,EAHW,MAAM,GAAN,cAAM,KAAN,cAAM,QAGjB;AAED,MAAa,MAAM;IACjB,YACU,aAAqB,EACrB,KAA0B,EAC1B,SAAkB,EAClB,MAAc,EACd,iBAA+B,EAC/B,WAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fcdns",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.14",
|
|
4
4
|
"description": "DNS relay server with fact-checking.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dns"
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"@types/ms": "^0.7.31",
|
|
39
39
|
"@types/node": "14",
|
|
40
40
|
"@types/ping": "^0.4.1",
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
42
|
-
"@typescript-eslint/parser": "^5.
|
|
43
|
-
"eslint": "^8.
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
|
42
|
+
"@typescript-eslint/parser": "^5.19.0",
|
|
43
|
+
"eslint": "^8.13.0",
|
|
44
44
|
"husky": "4",
|
|
45
45
|
"internet-number": "^3.0.1",
|
|
46
46
|
"jest": "^27.5.1",
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@blackglory/errors": "^2.2.1",
|
|
57
57
|
"@blackglory/go": "^1.0.0",
|
|
58
|
-
"@blackglory/types": "^1.0
|
|
58
|
+
"@blackglory/types": "^1.1.0",
|
|
59
59
|
"address-range": "^0.2.9",
|
|
60
60
|
"chalk": "^4.1.2",
|
|
61
|
-
"commander": "^9.
|
|
61
|
+
"commander": "^9.2.0",
|
|
62
62
|
"extra-filesystem": "^0.4.2",
|
|
63
63
|
"extra-logger": "^0.6.6",
|
|
64
64
|
"extra-promise": "^1.0.2",
|
|
65
|
-
"iterable-operator": "^1.0
|
|
65
|
+
"iterable-operator": "^1.1.0",
|
|
66
66
|
"ms": "^2.1.3",
|
|
67
67
|
"native-node-dns": "0.7.6",
|
|
68
68
|
"native-node-dns-packet": "0.1.5",
|