From e9580e939b61eeadb3fd7b56a4914e482b5a06e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Thu, 19 Dec 2019 00:46:22 +0800 Subject: [PATCH 1/8] print log when run with nps --- cmd/nps/nps.go | 12 ++++++++---- docs/run.md | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmd/nps/nps.go b/cmd/nps/nps.go index f4c771c..306da88 100644 --- a/cmd/nps/nps.go +++ b/cmd/nps/nps.go @@ -25,7 +25,7 @@ import ( ) var ( - level string + level string ) func main() { @@ -57,6 +57,12 @@ func main() { Description: "一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。", Option: options, } + svcConfig.Arguments = append(svcConfig.Arguments, "service") + if len(os.Args) > 1 && os.Args[1] == "service" { + logs.SetLogger(logs.AdapterFile, `{"level":`+level+`,"filename":"`+logPath+`","daily":false,"maxlines":100000,"color":true}`) + } else { + logs.SetLogger(logs.AdapterConsole, `{"level":`+level+`,"color":true}`) + } if !common.IsWindows() { svcConfig.Dependencies = []string{ "Requires=network.target", @@ -69,8 +75,7 @@ func main() { logs.Error(err) return } - logs.SetLogger(logs.AdapterConsole, `{"level":`+level+`,"color":true}`) - if len(os.Args) > 1 { + if len(os.Args) > 1 && os.Args[1] != "service" { switch os.Args[1] { case "reload": daemon.InitDaemon("nps", common.GetRunPath(), common.GetTmpPath()) @@ -93,7 +98,6 @@ func main() { } return case "start", "restart", "stop", "uninstall": - logs.SetLogger(logs.AdapterFile, `{"level":`+level+`,"filename":"`+logPath+`","daily":false,"maxlines":100000,"color":true}`) err := service.Control(s, os.Args[1]) if err != nil { logs.Error("Valid actions: %q\n", service.ControlAction, err.Error()) diff --git a/docs/run.md b/docs/run.md index dea35dc..805e154 100644 --- a/docs/run.md +++ b/docs/run.md @@ -18,7 +18,7 @@ 停止和重启可用,stop和restart -**如果发现没有启动成功,可以使用`nps(.exe) debug`运行调试,或查看日志**(Windows日志文件位于当前运行目录下,linux和darwin位于/var/log/nps.log) +**如果发现没有启动成功,可以使用`nps(.exe) stop`,然后运行`nps.(exe)`运行调试,或查看日志**(Windows日志文件位于当前运行目录下,linux和darwin位于/var/log/nps.log) - 访问服务端ip:web服务端口(默认为8080) - 使用用户名和密码登陆(默认admin/123,正式使用一定要更改) - 创建客户端 From f253afd2fb8bf7f3cfe2c015e3b63420f686348c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Thu, 19 Dec 2019 00:48:39 +0800 Subject: [PATCH 2/8] change md --- docs/use.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use.md b/docs/use.md index 5b75266..00547b2 100644 --- a/docs/use.md +++ b/docs/use.md @@ -2,9 +2,9 @@ ## 无配置文件模式 此模式的各种配置在服务端web管理中完成,客户端除运行一条命令外无需任何其他设置 ``` - ./npc -debug=true -server=ip:port -vkey=web界面中显示的密钥 + ./npc -server=ip:port -vkey=web界面中显示的密钥 ``` -## 注册到系统服务 +## 注册到系统服务(开机启动、守护进程) 对于linux、darwin - 注册:`sudo ./npc install 其他参数(例如-server=xx -vkey=xx或者-config=xxx)` - 启动:`sudo npc start` From 453d36f658a9e0802130946172e9f67867856ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Thu, 19 Dec 2019 01:15:18 +0800 Subject: [PATCH 3/8] add web protection in md --- docs/description.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/description.md b/docs/description.md index 584f5b0..72e69b3 100644 --- a/docs/description.md +++ b/docs/description.md @@ -8,6 +8,9 @@ ## 热更新支持 对于绝大多数配置,在web管理中的修改将实时使用,无需重启客户端或者服务端 +## web端保护 +在一分钟内,如果密码错误次数超过10次,该ip在一分钟内将不能再次登陆。 + ## 客户端地址显示 在web管理中将显示客户端的连接地址 From 231ba13e8c4bc7bb3e5225b6f6dd6226e05a2068 Mon Sep 17 00:00:00 2001 From: ffdfgdfg Date: Thu, 19 Dec 2019 22:24:58 +0800 Subject: [PATCH 4/8] remove mux connection deadline --- lib/mux/mux.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/mux/mux.go b/lib/mux/mux.go index 02b017a..ae9f335 100644 --- a/lib/mux/mux.go +++ b/lib/mux/mux.go @@ -34,6 +34,7 @@ type Mux struct { func NewMux(c net.Conn, connType string) *Mux { //c.(*net.TCPConn).SetReadBuffer(0) //c.(*net.TCPConn).SetWriteBuffer(0) + _ = c.SetDeadline(time.Time{}) m := &Mux{ conn: c, connMap: NewConnMap(), @@ -173,7 +174,7 @@ func (s *Mux) ping() { s.sendInfo(common.MUX_PING_FLAG, common.MUX_PING, now) // send the ping flag and get the latency first ticker := time.NewTicker(time.Second * 5) - defer ticker.Stop() + defer ticker.Stop() for { if s.IsClose { break @@ -198,7 +199,7 @@ func (s *Mux) ping() { } atomic.AddUint32(&s.pingOk, 1) } - return + return }() } From 8224996970dda839531b8a25c333a7ad9df2823b Mon Sep 17 00:00:00 2001 From: zouri Date: Sat, 21 Dec 2019 15:35:55 +0800 Subject: [PATCH 5/8] fix button not working on firefox --- web/views/client/add.html | 2 +- web/views/client/edit.html | 2 +- web/views/index/add.html | 2 +- web/views/index/edit.html | 2 +- web/views/index/hadd.html | 2 +- web/views/index/hedit.html | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/web/views/client/add.html b/web/views/client/add.html index 30563c2..ec12ed0 100755 --- a/web/views/client/add.html +++ b/web/views/client/add.html @@ -119,7 +119,7 @@
-
diff --git a/web/views/client/edit.html b/web/views/client/edit.html index 0ae06a2..074b0b6 100755 --- a/web/views/client/edit.html +++ b/web/views/client/edit.html @@ -128,7 +128,7 @@
-
diff --git a/web/views/index/add.html b/web/views/index/add.html index 302553a..358bc6c 100755 --- a/web/views/index/add.html +++ b/web/views/index/add.html @@ -101,7 +101,7 @@
-  
diff --git a/web/views/index/edit.html b/web/views/index/edit.html index 32e3c3f..0ace757 100755 --- a/web/views/index/edit.html +++ b/web/views/index/edit.html @@ -101,7 +101,7 @@
-
diff --git a/web/views/index/hadd.html b/web/views/index/hadd.html index 1a4482d..0112b24 100755 --- a/web/views/index/hadd.html +++ b/web/views/index/hadd.html @@ -97,7 +97,7 @@
-  
diff --git a/web/views/index/hedit.html b/web/views/index/hedit.html index 9e17f45..32d54ba 100644 --- a/web/views/index/hedit.html +++ b/web/views/index/hedit.html @@ -100,7 +100,7 @@
-  
From 7361d55e3a7313fe0e4409c60b994a00c49aa298 Mon Sep 17 00:00:00 2001 From: ffdfgdfg Date: Sun, 22 Dec 2019 19:33:32 +0800 Subject: [PATCH 6/8] temporary fix android internet permission --- build.android.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build.android.sh b/build.android.sh index 1dd9e39..8191f3b 100644 --- a/build.android.sh +++ b/build.android.sh @@ -5,6 +5,17 @@ cd /go go get -u fyne.io/fyne fyne.io/fyne/cmd/fyne + +# temporary solution here to add android internet permission +rm -rf /go/bin/fyne +mkdir -p /go/src/github.com/ffdfgdfg +cd /go/src/github.com/ffdfgdfg +git clone https://github.com/ffdfgdfg/fyne.git +cd fyne +git checkout android-permission +go install ./cmd/fyne +cd /go + mkdir -p /go/src/github.com/cnlh/nps cp -R /app/* /go/src/github.com/cnlh/nps cd /go/src/github.com/cnlh/nps From bcba0351aab122479e388ca6aa864065a9886ef8 Mon Sep 17 00:00:00 2001 From: ffdfgdfg Date: Sun, 22 Dec 2019 22:55:27 +0800 Subject: [PATCH 7/8] add manifest --- build.android.sh | 10 ---------- gui/npc/AndroidManifest.xml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 10 deletions(-) create mode 100755 gui/npc/AndroidManifest.xml diff --git a/build.android.sh b/build.android.sh index 8191f3b..02c97fe 100644 --- a/build.android.sh +++ b/build.android.sh @@ -6,16 +6,6 @@ cd /go go get -u fyne.io/fyne fyne.io/fyne/cmd/fyne -# temporary solution here to add android internet permission -rm -rf /go/bin/fyne -mkdir -p /go/src/github.com/ffdfgdfg -cd /go/src/github.com/ffdfgdfg -git clone https://github.com/ffdfgdfg/fyne.git -cd fyne -git checkout android-permission -go install ./cmd/fyne -cd /go - mkdir -p /go/src/github.com/cnlh/nps cp -R /app/* /go/src/github.com/cnlh/nps cd /go/src/github.com/cnlh/nps diff --git a/gui/npc/AndroidManifest.xml b/gui/npc/AndroidManifest.xml new file mode 100755 index 0000000..3bcb647 --- /dev/null +++ b/gui/npc/AndroidManifest.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + From b1384475d92bb5875fe169273b943d390f02cc67 Mon Sep 17 00:00:00 2001 From: ffdfgdfg Date: Tue, 24 Dec 2019 13:21:30 +0800 Subject: [PATCH 8/8] version to 0.25.3 --- build.sh | 2 +- gui/npc/AndroidManifest.xml | 2 +- lib/version/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 56e77f9..c994b98 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,5 @@ #/bash/sh -export VERSION=0.25.2 +export VERSION=0.25.3 sudo apt-get install gcc-mingw-w64-i686 env GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go build -ldflags "-s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.dll cmd/npc/sdk.go diff --git a/gui/npc/AndroidManifest.xml b/gui/npc/AndroidManifest.xml index 3bcb647..463634d 100755 --- a/gui/npc/AndroidManifest.xml +++ b/gui/npc/AndroidManifest.xml @@ -2,7 +2,7 @@ diff --git a/lib/version/version.go b/lib/version/version.go index 5c80ede..78dbbef 100644 --- a/lib/version/version.go +++ b/lib/version/version.go @@ -1,6 +1,6 @@ package version -const VERSION = "0.25.2" +const VERSION = "0.25.3" // Compulsory minimum version, Minimum downward compatibility to this version func GetVersion() string {