diff --git a/build.android.sh b/build.android.sh
index 1dd9e39..02c97fe 100644
--- a/build.android.sh
+++ b/build.android.sh
@@ -5,6 +5,7 @@
cd /go
go get -u fyne.io/fyne fyne.io/fyne/cmd/fyne
+
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/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/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/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管理中将显示客户端的连接地址
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,正式使用一定要更改)
- 创建客户端
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`
diff --git a/gui/npc/AndroidManifest.xml b/gui/npc/AndroidManifest.xml
new file mode 100755
index 0000000..463634d
--- /dev/null
+++ b/gui/npc/AndroidManifest.xml
@@ -0,0 +1,37 @@
+
+