Merge pull request #21 from bjdgyc/dev

修改link_addr为db设置
This commit is contained in:
bjdgyc 2021-04-14 12:59:59 +08:00 committed by GitHub
commit 3c3b3110a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 36 additions and 17 deletions

View File

@ -4,6 +4,9 @@
[![PkgGoDev](https://pkg.go.dev/badge/github.com/bjdgyc/anylink)](https://pkg.go.dev/github.com/bjdgyc/anylink) [![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) [![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) [![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的软件可以支持多人同时在线使用。 AnyLink 是一个企业级远程办公sslvpn的软件可以支持多人同时在线使用。
@ -204,9 +207,9 @@ eth_gateway="192.168.1.1"
sh bridge-init.sh sh bridge-init.sh
``` ```
## Soft ## 常见问题
相关软件下载: QQ群共享文件: 567510628 请前往 [问题地址](question.md) 查看具体信息
## Discussion ## Discussion
@ -214,6 +217,8 @@ sh bridge-init.sh
添加QQ群: 567510628 添加QQ群: 567510628
QQ群共享文件有相关软件下载
## Contribution ## Contribution
欢迎提交 PR、Issues感谢为AnyLink做出贡献。 欢迎提交 PR、Issues感谢为AnyLink做出贡献。

7
question.md Normal file
View File

@ -0,0 +1,7 @@
# 常见问题
* 远程桌面连接
> 本软件不支持远程桌面连接,请注意。
* 私有证书问题
> 可以通过 https://github.com/square/certstrap 生成私有的证书, 然后把CA证书放在客户端机器上即可以连接。

View File

@ -227,12 +227,19 @@ func userAccountMail(user *dbdata.User) error {
return err return err
} }
setting := &dbdata.SettingOther{}
err = dbdata.SettingGet(setting)
if err != nil {
base.Error(err)
return err
}
data := userAccountMailData{ data := userAccountMailData{
LinkAddr: base.Cfg.LinkAddr, LinkAddr: setting.LinkAddr,
Group: strings.Join(user.Groups, ","), Group: strings.Join(user.Groups, ","),
Username: user.Username, Username: user.Username,
PinCode: user.PinCode, 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("") w := bytes.NewBufferString("")
t, _ := template.New("auth_complete").Parse(htmlBody) t, _ := template.New("auth_complete").Parse(htmlBody)

View File

@ -30,7 +30,7 @@ var (
// rekey-method = ssl // rekey-method = ssl
type ServerConfig struct { type ServerConfig struct {
LinkAddr string `json:"link_addr"` // LinkAddr string `json:"link_addr"`
ServerAddr string `json:"server_addr"` ServerAddr string `json:"server_addr"`
AdminAddr string `json:"admin_addr"` AdminAddr string `json:"admin_addr"`
ProxyProtocol bool `json:"proxy_protocol"` ProxyProtocol bool `json:"proxy_protocol"`

View File

@ -16,7 +16,6 @@ type config struct {
} }
var configs = []config{ 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: "server_addr", Usage: "前台服务监听地址", ValStr: ":443"},
{Typ: cfgStr, Name: "admin_addr", Usage: "后台服务监听地址", ValStr: ":8800"}, {Typ: cfgStr, Name: "admin_addr", Usage: "后台服务监听地址", ValStr: ":8800"},
{Typ: cfgBool, Name: "proxy_protocol", Usage: "TCP代理协议", ValBool: false}, {Typ: cfgBool, Name: "proxy_protocol", Usage: "TCP代理协议", ValBool: false},

View File

@ -21,12 +21,9 @@ issuer = "XX公司VPN"
admin_user = "admin" admin_user = "admin"
#pass 123456 #pass 123456
admin_pass = "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke" 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" server_addr = ":443"
#后台服务监听地址 #后台服务监听地址

View File

@ -55,6 +55,7 @@ func initData() {
_ = SettingSet(smtp) _ = SettingSet(smtp)
other := &SettingOther{ other := &SettingOther{
LinkAddr: "vpn.xx.com",
Banner: "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为", Banner: "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为",
AccountMail: accountMail, AccountMail: accountMail,
} }

View File

@ -42,6 +42,7 @@ type SettingSmtp struct {
} }
type SettingOther struct { type SettingOther struct {
LinkAddr string `json:"link_addr"`
Banner string `json:"banner"` Banner string `json:"banner"`
AccountMail string `json:"account_mail"` AccountMail string `json:"account_mail"`
} }

View File

@ -13,11 +13,6 @@ import (
"github.com/gorilla/mux" "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() { func startTls() {
addr := base.Cfg.ServerAddr addr := base.Cfg.ServerAddr
certFile := base.Cfg.CertFile certFile := base.Cfg.CertFile
@ -28,7 +23,6 @@ func startTls() {
NextProtos: []string{"http/1.1"}, NextProtos: []string{"http/1.1"},
MinVersion: tls.VersionTLS12, MinVersion: tls.VersionTLS12,
InsecureSkipVerify: true, InsecureSkipVerify: true,
GetCertificate: GetCertificate,
} }
srv := &http.Server{ srv := &http.Server{
Addr: addr, Addr: addr,

View File

@ -8,6 +8,6 @@ User=root
WorkingDirectory= /usr/local/anylink-deploy WorkingDirectory= /usr/local/anylink-deploy
Restart=on-failure Restart=on-failure
RestartSec=5s RestartSec=5s
ExecStart=/usr/local/anylink-deploy/anylink -conf=conf/server.toml ExecStart=/usr/local/anylink-deploy/anylink --conf=conf/server.toml
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -30,6 +30,14 @@
<el-tab-pane label="其他设置" name="dataOther"> <el-tab-pane label="其他设置" name="dataOther">
<el-form :model="dataOther" ref="dataOther" :rules="rules" label-width="100px" class="tab-one"> <el-form :model="dataOther" ref="dataOther" :rules="rules" label-width="100px" class="tab-one">
<el-form-item label="vpn对外地址" prop="link_addr">
<el-input
placeholder="请输入内容"
v-model="dataOther.link_addr">
</el-input>
</el-form-item>
<el-form-item label="Banner信息" prop="banner"> <el-form-item label="Banner信息" prop="banner">
<el-input <el-input
type="textarea" type="textarea"