From 92605fc4d659e996855bbadae883d6cd143b4f29 Mon Sep 17 00:00:00 2001 From: lwch Date: Fri, 17 Dec 2021 14:51:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84=202.=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=AC=AC=E4=B8=89=E6=96=B9=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/client.yaml | 2 +- conf/{conf.d/conn.yaml => common.yaml} | 6 +++- conf/conf.d/log.yaml | 4 --- conf/server.yaml | 2 +- contrib/build/build_all.go | 46 ++++++++++++++------------ docs/startup.md | 12 +++---- go.mod | 2 +- go.sum | 10 ++---- 8 files changed, 40 insertions(+), 44 deletions(-) rename conf/{conf.d/conn.yaml => common.yaml} (53%) delete mode 100644 conf/conf.d/log.yaml diff --git a/conf/client.yaml b/conf/client.yaml index 43738c9..ce5915b 100644 --- a/conf/client.yaml +++ b/conf/client.yaml @@ -4,6 +4,6 @@ dashboard: # web面板 enabled: true # 是否开放dashboard listen: 0.0.0.0 # 监听地址 port: 8080 # 监听端口号 -#include conf.d/*.yaml +#include common.yaml rules: # rule列表 #include rule.d/*.yaml \ No newline at end of file diff --git a/conf/conf.d/conn.yaml b/conf/common.yaml similarity index 53% rename from conf/conf.d/conn.yaml rename to conf/common.yaml index c1eb316..c90781f 100644 --- a/conf/conf.d/conn.yaml +++ b/conf/common.yaml @@ -2,4 +2,8 @@ secret: 0123456789 # 预共享密钥,否则握手失败 link: connections: 3 # 连接数,仅client有效 read_timeout: 1s # 读取数据包超时时间 - write_timeout: 1s # 发送数据包超时时间 \ No newline at end of file + write_timeout: 1s # 发送数据包超时时间 +log: + dir: ./logs # 路径 + size: 50M # 单个文件大小 + rotate: 7 # 保留数量 \ No newline at end of file diff --git a/conf/conf.d/log.yaml b/conf/conf.d/log.yaml deleted file mode 100644 index 836bfd7..0000000 --- a/conf/conf.d/log.yaml +++ /dev/null @@ -1,4 +0,0 @@ -log: - dir: ./logs # 路径 - size: 50M # 单个文件大小 - rotate: 7 # 保留数量 \ No newline at end of file diff --git a/conf/server.yaml b/conf/server.yaml index 36a9d5c..051eb90 100644 --- a/conf/server.yaml +++ b/conf/server.yaml @@ -1,5 +1,5 @@ listen: 6154 # 监听端口号 -#include conf.d/*.yaml +#include common.yaml tls: key: /dir/to/tls/key/file # tls密钥 crt: /dir/to/tls/crt/file # tls证书 \ No newline at end of file diff --git a/contrib/build/build_all.go b/contrib/build/build_all.go index d3b2abc..63284cd 100644 --- a/contrib/build/build_all.go +++ b/contrib/build/build_all.go @@ -167,8 +167,8 @@ func build(t target) { ldflags := "-X 'main.gitHash=" + gitHash() + "' " + "-X 'main.gitReversion=" + gitReversion() + "' " + "-X 'main.buildTime=" + buildTime() + "' " + - "-X 'main.version=" + version + "' " + - "--extldflags '-static -fpic -lssp'" + "-X 'main.version=" + version + "' " + // "--extldflags '-static -fpic -lssp'" logging.Info("build server...") cmd := exec.Command("go", "build", "-o", path.Join(buildDir, "np-svr"+t.ext), @@ -192,6 +192,8 @@ func build(t target) { if t.os == "windows" && !strings.Contains(t.arch, "arm") { args = append(args, "-tags", "vnc") env = append(env, "CGO_ENABLED=1") + } else if t.os == "linux" && !strings.Contains(t.arch, "arm") { + env = append(env, "CGO_ENABLED=1") } args = append(args, path.Join("code", "client", "main.go")) @@ -201,26 +203,26 @@ func build(t target) { cmd.Env = env runtime.Assert(cmd.Run()) - if t.os == "linux" && !strings.Contains(t.arch, "arm") { - ldflags := "-X 'main.gitHash=" + gitHash() + "' " + - "-X 'main.gitReversion=" + gitReversion() + "' " + - "-X 'main.buildTime=" + buildTime() + "' " + - "-X 'main.version=" + version + "'" - logging.Info("build client.vnc...") - env := append(os.Environ(), - fmt.Sprintf("GOOS=%s", t.os), - fmt.Sprintf("GOARCH=%s", t.arch)) - args := []string{"build", "-o", path.Join(buildDir, "np-cli.vnc"), "-ldflags", ldflags} - args = append(args, "-tags", "vnc") - env = append(env, "CGO_ENABLED=1") - args = append(args, - path.Join("code", "client", "main.go")) - cmd = exec.Command("go", args...) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - cmd.Env = env - runtime.Assert(cmd.Run()) - } + // if t.os == "linux" && !strings.Contains(t.arch, "arm") { + // ldflags := "-X 'main.gitHash=" + gitHash() + "' " + + // "-X 'main.gitReversion=" + gitReversion() + "' " + + // "-X 'main.buildTime=" + buildTime() + "' " + + // "-X 'main.version=" + version + "'" + // logging.Info("build client.vnc...") + // env := append(os.Environ(), + // fmt.Sprintf("GOOS=%s", t.os), + // fmt.Sprintf("GOARCH=%s", t.arch)) + // args := []string{"build", "-o", path.Join(buildDir, "np-cli.vnc"), "-ldflags", ldflags} + // args = append(args, "-tags", "vnc") + // env = append(env, "CGO_ENABLED=1") + // args = append(args, + // path.Join("code", "client", "main.go")) + // cmd = exec.Command("go", args...) + // cmd.Stdout = os.Stdout + // cmd.Stderr = os.Stderr + // cmd.Env = env + // runtime.Assert(cmd.Run()) + // } logging.Info("packing...") pack(buildDir, path.Join(releaseDir, "natpass_"+version+"_"+t.os+"_"+t.arch+t.packExt)) diff --git a/docs/startup.md b/docs/startup.md index f18cff4..b57d4fa 100644 --- a/docs/startup.md +++ b/docs/startup.md @@ -9,10 +9,10 @@ 1. 在服务器上[下载](https://github.com/lwch/natpass/releases)并解压到任意目录 2. 修改server.yaml配置文件,设置*key*和*crt*参数到你的证书所在路径 -3. 修改conf.d/conn.yaml配置文件,修改*secret*密钥,建议使用以下命令生成随机16位密钥 +3. 修改common.yaml配置文件,修改*secret*密钥,建议使用以下命令生成随机16位密钥 tr -dc A-Za-z0-9 < /dev/urandom|dd bs=16 count=1 2>/dev/null -4. 修改conf.d/log.yaml配置文件,将log目录设置为一个绝对路径 +4. 修改common.yaml配置文件,将log目录设置为一个绝对路径 5. 使用以下命令将np-svr注册为系统服务,其中-conf参数后跟配置文件所在路径,-user参数后为程序启动身份(建议使用nobody身份启动) sudo ./np-svr -conf server.yaml -action install -user nobody @@ -31,8 +31,8 @@ 2. 修改client.yaml配置文件,设置*id*为remote,设置*server*地址,并删除以下配置 #include rule.d/*.yaml -3. 修改conf.d/conn.yaml配置文件,修改*secret*密钥,该密钥必须与服务器端保持一致 -4. 修改conf.d/log.yaml配置文件,将log目录设置为一个绝对路径 +3. 修改common.yaml配置文件,修改*secret*密钥,该密钥必须与服务器端保持一致 +4. 修改common.yaml配置文件,将log目录设置为一个绝对路径 5. 使用以下命令将np-cli注册为系统服务,其中-conf参数后跟配置文件所在路径,-user参数后为程序启动身份(建议使用nobody身份启动) sudo ./np-cli -conf client.yaml -action install -user nobody @@ -53,8 +53,8 @@ 1. 在本地控制机上[下载](https://github.com/lwch/natpass/releases)并解压到任意目录 2. 修改client.yaml配置文件,设置*id*为local,设置*server*地址 -3. 修改conf.d/conn.yaml配置文件,修改*secret*密钥,该密钥必须与服务器端保持一致 -4. 修改conf.d/log.yaml配置文件,将log目录设置为一个绝对路径 +3. 修改common.yaml配置文件,修改*secret*密钥,该密钥必须与服务器端保持一致 +4. 修改common.yaml配置文件,将log目录设置为一个绝对路径 5. 修改rule.d目录下的规则配置文件,[rule配置方法](rules.md) 6. 使用以下命令将np-cli注册为系统服务,其中-conf参数后跟配置文件所在路径,-user参数后为程序启动身份(建议使用nobody身份启动) diff --git a/go.mod b/go.mod index cd6995b..f2f0bd5 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/kardianos/service v1.2.0 github.com/kisielk/errcheck v1.6.0 // indirect github.com/lwch/logging v0.0.0-20211203094902-ecb971ed7cdc - github.com/lwch/rdesktop v0.0.0-20211217025025-db96a8b1268a + github.com/lwch/rdesktop v0.0.0-20211217064159-72c95371f19d github.com/lwch/runtime v0.0.0-20190520054850-8c97e19e0c6d github.com/lwch/yaml v0.0.0-20211206085137-772f80e85a26 github.com/shirou/gopsutil v3.21.11+incompatible // indirect diff --git a/go.sum b/go.sum index 0868c6f..00aaf01 100644 --- a/go.sum +++ b/go.sum @@ -13,8 +13,6 @@ github.com/go-bindata/go-bindata/v3 v3.1.3/go.mod h1:1/zrpXsLD8YDIbhZRqXzm1Ghc7N github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-vgo/robotgo v0.100.9 h1:dgt4qaxBw6+vg4P5tUeH26VsL5M0v/IRwRmkingZ2YU= -github.com/go-vgo/robotgo v0.100.9/go.mod h1:7QeIpSHX7bjeXWRPxvQeKSx9mHI+3l80Ahq+CQF0C68= github.com/go-vgo/robotgo v0.100.10 h1:bZe7AslG6oq5ops1SWUxsPfM9Z3QQvlqfA3ezxLFNO4= github.com/go-vgo/robotgo v0.100.10/go.mod h1:7QeIpSHX7bjeXWRPxvQeKSx9mHI+3l80Ahq+CQF0C68= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -30,10 +28,8 @@ github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/lwch/logging v0.0.0-20211115073745-0db19179db17/go.mod h1:aXQui5bsF/d4I+z6szuiBWY5m4y9t6pyZ2Q/sLgkBBg= github.com/lwch/logging v0.0.0-20211203094902-ecb971ed7cdc h1:QHC/AggBsu39IWcbzjgIc2ApNXuWhZhD1ieCkFgWfeM= github.com/lwch/logging v0.0.0-20211203094902-ecb971ed7cdc/go.mod h1:aXQui5bsF/d4I+z6szuiBWY5m4y9t6pyZ2Q/sLgkBBg= -github.com/lwch/rdesktop v0.0.0-20211209161836-c8ee915cb35d h1:8nr2hNg1Mo33j4FKLQKDCgMoQm5KdPInOfyTk8QVdA8= -github.com/lwch/rdesktop v0.0.0-20211209161836-c8ee915cb35d/go.mod h1:vZtkNUaG1bDuzJavu8OQQoBbHVS6cYJE7y4oxtmhYYM= -github.com/lwch/rdesktop v0.0.0-20211217025025-db96a8b1268a h1:RlwSknSgxrGUT/j4f8ZgG9OC2rn4EKcMO7FN6qxfXs4= -github.com/lwch/rdesktop v0.0.0-20211217025025-db96a8b1268a/go.mod h1:vZtkNUaG1bDuzJavu8OQQoBbHVS6cYJE7y4oxtmhYYM= +github.com/lwch/rdesktop v0.0.0-20211217064159-72c95371f19d h1:ioVvcxrgkXHbrUDHadvwnCcsCI7V0t7lLQ6nd6LCfGY= +github.com/lwch/rdesktop v0.0.0-20211217064159-72c95371f19d/go.mod h1:vZtkNUaG1bDuzJavu8OQQoBbHVS6cYJE7y4oxtmhYYM= github.com/lwch/runtime v0.0.0-20190520054850-8c97e19e0c6d h1:Xg+zzPtvX22DaoJD5Bp0tqPdB8gn5WypghIJ4fluqiQ= github.com/lwch/runtime v0.0.0-20190520054850-8c97e19e0c6d/go.mod h1:uEt0zu1MDC7WnVvodPBGSYAD/KMKk0v36xE8UE5veM8= github.com/lwch/yaml v0.0.0-20211206085137-772f80e85a26 h1:sR3nbPhdfstDxYLp7c1EnsKH3z8+u+wgnhC3AI9/qf0= @@ -108,8 +104,6 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211123173158-ef496fb156ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211209171907-798191bca915 h1:P+8mCzuEpyszAT6T42q0sxU+eveBAF/cJ2Kp0x6/8+0= -golang.org/x/sys v0.0.0-20211209171907-798191bca915/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=