diff --git a/README.md b/README.md index 2406d86..c288c71 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,9 @@ [![PkgGoDev](https://pkg.go.dev/badge/github.com/bjdgyc/anylink)](https://pkg.go.dev/github.com/bjdgyc/anylink) [![Go Report Card](https://goreportcard.com/badge/github.com/bjdgyc/anylink)](https://goreportcard.com/report/github.com/bjdgyc/anylink) [![codecov](https://codecov.io/gh/bjdgyc/anylink/branch/master/graph/badge.svg?token=JTFLIIIBQ0)](https://codecov.io/gh/bjdgyc/anylink) +![GitHub release](https://img.shields.io/github/v/release/bjdgyc/anylink) +![GitHub downloads)](https://img.shields.io/github/downloads/bjdgyc/anylink/latest/total) +![LICENSE](https://img.shields.io/github/license/bjdgyc/anylink) AnyLink 是一个企业级远程办公sslvpn的软件,可以支持多人同时在线使用。 @@ -204,9 +207,9 @@ eth_gateway="192.168.1.1" sh bridge-init.sh ``` -## Soft +## 常见问题 -相关软件下载: QQ群共享文件: 567510628 +请前往 [问题地址](question.md) 查看具体信息 ## Discussion @@ -214,6 +217,8 @@ sh bridge-init.sh 添加QQ群: 567510628 +QQ群共享文件有相关软件下载 + ## Contribution 欢迎提交 PR、Issues,感谢为AnyLink做出贡献。 diff --git a/question.md b/question.md new file mode 100644 index 0000000..2bc9c85 --- /dev/null +++ b/question.md @@ -0,0 +1,7 @@ +# 常见问题 + +* 远程桌面连接 +> 本软件不支持远程桌面连接,请注意。 + +* 私有证书问题 +> 可以通过 https://github.com/square/certstrap 生成私有的证书, 然后把CA证书放在客户端机器上即可以连接。 diff --git a/server/admin/api_user.go b/server/admin/api_user.go index 8442ee7..a1797f5 100644 --- a/server/admin/api_user.go +++ b/server/admin/api_user.go @@ -227,12 +227,19 @@ func userAccountMail(user *dbdata.User) error { return err } + setting := &dbdata.SettingOther{} + err = dbdata.SettingGet(setting) + if err != nil { + base.Error(err) + return err + } + data := userAccountMailData{ - LinkAddr: base.Cfg.LinkAddr, + LinkAddr: setting.LinkAddr, Group: strings.Join(user.Groups, ","), Username: user.Username, PinCode: user.PinCode, - OtpImg: fmt.Sprintf("https://%s/otp_qr?id=%d&jwt=%s", base.Cfg.LinkAddr, user.Id, tokenString), + OtpImg: fmt.Sprintf("https://%s/otp_qr?id=%d&jwt=%s", setting.LinkAddr, user.Id, tokenString), } w := bytes.NewBufferString("") t, _ := template.New("auth_complete").Parse(htmlBody) diff --git a/server/base/cfg.go b/server/base/cfg.go index 804c374..9f7ec6d 100644 --- a/server/base/cfg.go +++ b/server/base/cfg.go @@ -30,7 +30,7 @@ var ( // rekey-method = ssl type ServerConfig struct { - LinkAddr string `json:"link_addr"` + // LinkAddr string `json:"link_addr"` ServerAddr string `json:"server_addr"` AdminAddr string `json:"admin_addr"` ProxyProtocol bool `json:"proxy_protocol"` diff --git a/server/base/config.go b/server/base/config.go index 0c80780..fd3ed8e 100644 --- a/server/base/config.go +++ b/server/base/config.go @@ -16,7 +16,6 @@ type config struct { } var configs = []config{ - {Typ: cfgStr, Name: "link_addr", Usage: "vpn服务对外地址", ValStr: "vpn.xx.com"}, {Typ: cfgStr, Name: "server_addr", Usage: "前台服务监听地址", ValStr: ":443"}, {Typ: cfgStr, Name: "admin_addr", Usage: "后台服务监听地址", ValStr: ":8800"}, {Typ: cfgBool, Name: "proxy_protocol", Usage: "TCP代理协议", ValBool: false}, diff --git a/server/conf/server.toml b/server/conf/server.toml index cac13f3..4560290 100644 --- a/server/conf/server.toml +++ b/server/conf/server.toml @@ -21,12 +21,9 @@ issuer = "XX公司VPN" admin_user = "admin" #pass 123456 admin_pass = "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke" -jwt_secret = "iLmspvOiz*%ovfcs*wersdf#^heR8pNU^4XxBm&mW$aPCjSRMbYH#&" +jwt_secret = "iLmspvOiz*%ovfcs*wersdf#heR8pNU4XxBm&mW$aPCjSRMbYH#&" -#vpn服务对外地址,影响开通邮件二维码 -link_addr = "vpn.xx.com" - #前台服务监听地址 server_addr = ":443" #后台服务监听地址 diff --git a/server/dbdata/db.go b/server/dbdata/db.go index e9a772e..52c4c41 100644 --- a/server/dbdata/db.go +++ b/server/dbdata/db.go @@ -55,6 +55,7 @@ func initData() { _ = SettingSet(smtp) other := &SettingOther{ + LinkAddr: "vpn.xx.com", Banner: "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为!", AccountMail: accountMail, } diff --git a/server/dbdata/setting.go b/server/dbdata/setting.go index 5db2f81..a03b015 100644 --- a/server/dbdata/setting.go +++ b/server/dbdata/setting.go @@ -42,6 +42,7 @@ type SettingSmtp struct { } type SettingOther struct { + LinkAddr string `json:"link_addr"` Banner string `json:"banner"` AccountMail string `json:"account_mail"` } diff --git a/server/handler/server.go b/server/handler/server.go index ab1113b..ffd5672 100644 --- a/server/handler/server.go +++ b/server/handler/server.go @@ -13,11 +13,6 @@ import ( "github.com/gorilla/mux" ) -func GetCertificate(*tls.ClientHelloInfo) (*tls.Certificate, error) { - cert, err := tls.LoadX509KeyPair(base.Cfg.CertFile, base.Cfg.CertKey) - return &cert, err -} - func startTls() { addr := base.Cfg.ServerAddr certFile := base.Cfg.CertFile @@ -28,7 +23,6 @@ func startTls() { NextProtos: []string{"http/1.1"}, MinVersion: tls.VersionTLS12, InsecureSkipVerify: true, - GetCertificate: GetCertificate, } srv := &http.Server{ Addr: addr, diff --git a/systemd/anylink.service b/systemd/anylink.service index 2403d1e..9ea8dd1 100644 --- a/systemd/anylink.service +++ b/systemd/anylink.service @@ -8,6 +8,6 @@ User=root WorkingDirectory= /usr/local/anylink-deploy Restart=on-failure RestartSec=5s -ExecStart=/usr/local/anylink-deploy/anylink -conf=conf/server.toml +ExecStart=/usr/local/anylink-deploy/anylink --conf=conf/server.toml [Install] WantedBy=multi-user.target diff --git a/web/src/pages/set/Other.vue b/web/src/pages/set/Other.vue index 4b0e1b7..7fd905f 100644 --- a/web/src/pages/set/Other.vue +++ b/web/src/pages/set/Other.vue @@ -30,6 +30,14 @@ + + + + + +