diff --git a/.gitignore b/.gitignore
index bb9bfa4..d91f539 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
# Binaries for programs and plugins
.idea/
anylink-deploy
-ui
+anylink-deploy.tar.gz
diff --git a/dtls-2.0.9/pkg/crypto/selfsign/selfsign.go b/dtls-2.0.9/pkg/crypto/selfsign/selfsign.go
index 7b707af..f8c814c 100644
--- a/dtls-2.0.9/pkg/crypto/selfsign/selfsign.go
+++ b/dtls-2.0.9/pkg/crypto/selfsign/selfsign.go
@@ -9,6 +9,7 @@ import (
"crypto/rand"
"crypto/tls"
"crypto/x509"
+ "crypto/x509/pkix"
"encoding/hex"
"errors"
"math/big"
@@ -70,6 +71,11 @@ func WithDNS(key crypto.PrivateKey, cn string, sans ...string) (tls.Certificate,
names = append(names, sans...)
template := x509.Certificate{
+ Subject: pkix.Name{
+ // TODO anylink
+ Organization: []string{cn},
+ OrganizationalUnit: names,
+ },
ExtKeyUsage: []x509.ExtKeyUsage{
x509.ExtKeyUsageClientAuth,
x509.ExtKeyUsageServerAuth,
diff --git a/question.md b/question.md
index d6542ca..e758d3f 100644
--- a/question.md
+++ b/question.md
@@ -6,7 +6,7 @@
> 添加QQ群: 567510628
### 远程桌面连接
-> 本软件不支持远程桌面里面连接anyconnect,请注意。
+> 本软件已经支持远程桌面里面连接anyconnect。
### 私有证书问题
> anylink 默认不支持私有证书
diff --git a/server/admin/api_set.go b/server/admin/api_set.go
index d40c4e2..2430d23 100644
--- a/server/admin/api_set.go
+++ b/server/admin/api_set.go
@@ -67,10 +67,11 @@ func SetSystem(w http.ResponseWriter, r *http.Request) {
hi, _ := host.Info()
l, _ := load.Avg()
data["sys"] = map[string]interface{}{
- "goOs": runtime.GOOS,
- "goArch": runtime.GOARCH,
- "goVersion": runtime.Version(),
- "goroutine": runtime.NumGoroutine(),
+ "goOs": runtime.GOOS,
+ "goArch": runtime.GOARCH,
+ "goVersion": runtime.Version(),
+ "goroutine": runtime.NumGoroutine(),
+ "appVersion": "v" + base.APP_VER,
"hostname": hi.Hostname,
"platform": fmt.Sprintf("%v %v %v", hi.Platform, hi.PlatformFamily, hi.PlatformVersion),
diff --git a/server/admin/common.go b/server/admin/common.go
index 14796bf..0c64d02 100644
--- a/server/admin/common.go
+++ b/server/admin/common.go
@@ -59,8 +59,14 @@ func SendMail(subject, to, htmlBody string) error {
server.Port = dataSmtp.Port
server.Username = dataSmtp.Username
server.Password = dataSmtp.Password
- if dataSmtp.UseSSl {
- server.Encryption = mail.EncryptionSSL
+
+ switch dataSmtp.Encryption {
+ case "SSLTLS":
+ server.Encryption = mail.EncryptionSSLTLS
+ case "STARTTLS":
+ server.Encryption = mail.EncryptionSTARTTLS
+ default:
+ server.Encryption = mail.EncryptionNone
}
// Since v2.3.0 you can specified authentication type:
diff --git a/server/base/config.go b/server/base/config.go
index 8202d79..810f7a5 100644
--- a/server/base/config.go
+++ b/server/base/config.go
@@ -27,8 +27,8 @@ var configs = []config{
{Typ: cfgStr, Name: "cert_file", Usage: "证书文件", ValStr: "./vpn_cert.pem"},
{Typ: cfgStr, Name: "cert_key", Usage: "证书密钥", ValStr: "./vpn_cert.key"},
{Typ: cfgStr, Name: "files_path", Usage: "外部下载文件路径", ValStr: "./files"},
- {Typ: cfgStr, Name: "log_path", Usage: "日志文件路径", ValStr: ""},
- {Typ: cfgStr, Name: "log_level", Usage: "日志等级", ValStr: "info"},
+ {Typ: cfgStr, Name: "log_path", Usage: "日志文件路径,默认标准输出", ValStr: ""},
+ {Typ: cfgStr, Name: "log_level", Usage: "日志等级 debug、info、warn、error", ValStr: "info"},
{Typ: cfgBool, Name: "pprof", Usage: "开启pprof", ValBool: false},
{Typ: cfgStr, Name: "issuer", Usage: "系统名称", ValStr: "XX公司VPN"},
{Typ: cfgStr, Name: "admin_user", Usage: "管理用户名", ValStr: "admin"},
diff --git a/server/dbdata/setting.go b/server/dbdata/setting.go
index a03b015..5bc219b 100644
--- a/server/dbdata/setting.go
+++ b/server/dbdata/setting.go
@@ -33,12 +33,12 @@ func SettingGet(data interface{}) error {
}
type SettingSmtp struct {
- Host string `json:"host"`
- Port int `json:"port"`
- Username string `json:"username"`
- Password string `json:"password"`
- From string `json:"from"`
- UseSSl bool `json:"use_ssl"`
+ Host string `json:"host"`
+ Port int `json:"port"`
+ Username string `json:"username"`
+ Password string `json:"password"`
+ From string `json:"from"`
+ Encryption string `json:"encryption"`
}
type SettingOther struct {
diff --git a/server/handler/link_auth.go b/server/handler/link_auth.go
index 0180148..8b5dc7f 100644
--- a/server/handler/link_auth.go
+++ b/server/handler/link_auth.go
@@ -173,6 +173,48 @@ var auth_complete = `
240B97A685B2BFA66AD699B90AAC49EA66495D69
+
+
+
+ /profile.xml
+ A8B0B07FBA93D06E8501E40AB807AEE2464E73B7
+
+
+
`
+
+var auth_profile = `
+
+
+
+ false
+ false
+ false
+ IPSec
+ true
+ AllowRemoteUsers
+ pinAllowed
+
+
+ Digital_Signature
+
+
+ ClientAuth
+
+
+
+
+ localhost
+
+
+
+
+
+ VPN Server
+ localhost
+
+
+
+`
diff --git a/server/handler/server.go b/server/handler/server.go
index 4df919b..e8372ea 100644
--- a/server/handler/server.go
+++ b/server/handler/server.go
@@ -10,10 +10,11 @@ import (
"os"
"time"
+ "github.com/pion/dtls/v2/pkg/crypto/selfsign"
+
"github.com/bjdgyc/anylink/base"
"github.com/bjdgyc/anylink/pkg/proxyproto"
"github.com/gorilla/mux"
- "github.com/pion/dtls/v2/pkg/crypto/selfsign"
)
func startTls() {
@@ -79,6 +80,9 @@ func initRoute() http.Handler {
r.HandleFunc("/", LinkAuth).Methods(http.MethodPost)
r.HandleFunc("/CSCOSSLC/tunnel", LinkTunnel).Methods(http.MethodConnect)
r.HandleFunc("/otp_qr", LinkOtpQr).Methods(http.MethodGet)
+ r.HandleFunc("/profile.xml", func(w http.ResponseWriter, r *http.Request) {
+ w.Write([]byte(auth_profile))
+ }).Methods(http.MethodGet)
r.PathPrefix("/files/").Handler(
http.StripPrefix("/files/",
http.FileServer(http.Dir(base.Cfg.FilesPath)),
diff --git a/web/package-lock.json b/web/package-lock.json
index 17ef586..5e57c24 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"axios": "^0.20.0",
+ "chokidar": "^3.5.2",
"core-js": "^3.6.5",
"echarts": "^4.9.0",
"element-ui": "^2.4.5",
@@ -2429,11 +2430,9 @@
"dev": true
},
"node_modules/anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz",
- "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=",
- "dev": true,
- "optional": true,
+ "version": "3.1.2",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz",
+ "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -2883,8 +2882,6 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz",
"integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=",
- "dev": true,
- "optional": true,
"engines": {
"node": ">=8"
}
@@ -3469,31 +3466,29 @@
"dev": true
},
"node_modules/chokidar": {
- "version": "3.4.2",
- "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596728935229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz",
- "integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=",
- "dev": true,
- "optional": true,
+ "version": "3.5.2",
+ "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz?cache=0&sync_timestamp=1623763452074&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchokidar%2Fdownload%2Fchokidar-3.5.2.tgz",
+ "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=",
"dependencies": {
- "anymatch": "~3.1.1",
+ "anymatch": "~3.1.2",
"braces": "~3.0.2",
- "fsevents": "~2.1.2",
- "glob-parent": "~5.1.0",
+ "glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
- "readdirp": "~3.4.0"
+ "readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
}
},
"node_modules/chokidar/node_modules/braces": {
"version": "3.0.2",
"resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
"integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
- "dev": true,
- "optional": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -3505,8 +3500,6 @@
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
"integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
- "dev": true,
- "optional": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -3518,8 +3511,6 @@
"version": "7.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
"integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
- "dev": true,
- "optional": true,
"engines": {
"node": ">=0.12.0"
}
@@ -3528,8 +3519,6 @@
"version": "5.0.1",
"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
"integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
- "dev": true,
- "optional": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -6375,14 +6364,10 @@
"dev": true
},
"node_modules/fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz",
- "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=",
- "dev": true,
+ "version": "2.3.2",
+ "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz",
+ "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
"optional": true,
- "os": [
- "darwin"
- ],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
@@ -6465,10 +6450,9 @@
}
},
"node_modules/glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz",
- "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=",
- "dev": true,
+ "version": "5.1.2",
+ "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1620073438189&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
+ "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -7397,8 +7381,6 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
"integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
- "dev": true,
- "optional": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -7537,7 +7519,6 @@
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7555,7 +7536,6 @@
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
"integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
- "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -8805,7 +8785,6 @@
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
"integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9512,11 +9491,9 @@
"dev": true
},
"node_modules/picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
- "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
- "dev": true,
- "optional": true,
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz",
+ "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=",
"engines": {
"node": ">=8.6"
}
@@ -10556,11 +10533,9 @@
}
},
"node_modules/readdirp": {
- "version": "3.4.0",
- "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz",
- "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=",
- "dev": true,
- "optional": true,
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz?cache=0&sync_timestamp=1615717369278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz",
+ "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -16342,11 +16317,9 @@
"dev": true
},
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz",
- "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=",
- "dev": true,
- "optional": true,
+ "version": "3.1.2",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz",
+ "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -16733,9 +16706,7 @@
"binary-extensions": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz",
- "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=",
- "dev": true,
- "optional": true
+ "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk="
},
"bindings": {
"version": "1.5.0",
@@ -17257,28 +17228,24 @@
"dev": true
},
"chokidar": {
- "version": "3.4.2",
- "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596728935229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz",
- "integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=",
- "dev": true,
- "optional": true,
+ "version": "3.5.2",
+ "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz?cache=0&sync_timestamp=1623763452074&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchokidar%2Fdownload%2Fchokidar-3.5.2.tgz",
+ "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=",
"requires": {
- "anymatch": "~3.1.1",
+ "anymatch": "~3.1.2",
"braces": "~3.0.2",
- "fsevents": "~2.1.2",
- "glob-parent": "~5.1.0",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
- "readdirp": "~3.4.0"
+ "readdirp": "~3.6.0"
},
"dependencies": {
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
"integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
- "dev": true,
- "optional": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -17287,8 +17254,6 @@
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
"integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
- "dev": true,
- "optional": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -17296,16 +17261,12 @@
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
- "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
- "dev": true,
- "optional": true
+ "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss="
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
"integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
- "dev": true,
- "optional": true,
"requires": {
"is-number": "^7.0.0"
}
@@ -19688,10 +19649,9 @@
"dev": true
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz",
- "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=",
- "dev": true,
+ "version": "2.3.2",
+ "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz",
+ "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
"optional": true
},
"function-bind": {
@@ -19757,10 +19717,9 @@
}
},
"glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz",
- "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=",
- "dev": true,
+ "version": "5.1.2",
+ "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1620073438189&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
+ "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
"requires": {
"is-glob": "^4.0.1"
}
@@ -20528,8 +20487,6 @@
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
"integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
- "dev": true,
- "optional": true,
"requires": {
"binary-extensions": "^2.0.0"
}
@@ -20635,8 +20592,7 @@
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
},
"is-fullwidth-code-point": {
"version": "3.0.0",
@@ -20648,7 +20604,6 @@
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
"integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
- "dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
@@ -21695,8 +21650,7 @@
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
- "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
- "dev": true
+ "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU="
},
"normalize-range": {
"version": "0.1.2",
@@ -22276,11 +22230,9 @@
"dev": true
},
"picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
- "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
- "dev": true,
- "optional": true
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz",
+ "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI="
},
"pify": {
"version": "4.0.1",
@@ -23181,11 +23133,9 @@
}
},
"readdirp": {
- "version": "3.4.0",
- "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz",
- "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=",
- "dev": true,
- "optional": true,
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz?cache=0&sync_timestamp=1615717369278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz",
+ "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=",
"requires": {
"picomatch": "^2.2.1"
}
diff --git a/web/package.json b/web/package.json
index 4448a18..b9ca6c4 100644
--- a/web/package.json
+++ b/web/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"axios": "^0.20.0",
+ "chokidar": "^3.5.2",
"core-js": "^3.6.5",
"echarts": "^4.9.0",
"element-ui": "^2.4.5",
diff --git a/web/src/pages/set/Other.vue b/web/src/pages/set/Other.vue
index 7fd905f..20fdf02 100644
--- a/web/src/pages/set/Other.vue
+++ b/web/src/pages/set/Other.vue
@@ -15,8 +15,12 @@
-
-
+
+
+ None
+ SSLTLS
+ STARTTLS
+
diff --git a/web/src/pages/set/System.vue b/web/src/pages/set/System.vue
index f0a6a8e..52c63c8 100644
--- a/web/src/pages/set/System.vue
+++ b/web/src/pages/set/System.vue
@@ -46,8 +46,9 @@
- go运行环境
+ 运行环境
+ |
|
|
|