mirror of
https://github.com/ehang-io/nps.git
synced 2025-07-03 04:53:50 +00:00
Readme
This commit is contained in:
parent
42a73fa392
commit
d42710497c
96
README.md
96
README.md
@ -43,7 +43,6 @@ nps是一款轻量级、高性能、功能强大的**内网穿透**代理服务
|
|||||||
* [服务端配置文件重载](#服务端配置文件重载)
|
* [服务端配置文件重载](#服务端配置文件重载)
|
||||||
* [服务端停止或重启](#服务端停止或重启)
|
* [服务端停止或重启](#服务端停止或重启)
|
||||||
* [配置文件说明](#服务端配置文件)
|
* [配置文件说明](#服务端配置文件)
|
||||||
|
|
||||||
* [使用https](#使用https)
|
* [使用https](#使用https)
|
||||||
* [与nginx配合](#与nginx配合)
|
* [与nginx配合](#与nginx配合)
|
||||||
* [关闭http|https代理](#关闭代理)
|
* [关闭http|https代理](#关闭代理)
|
||||||
@ -53,6 +52,7 @@ nps是一款轻量级、高性能、功能强大的**内网穿透**代理服务
|
|||||||
* [关闭公钥访问](#关闭公钥访问)
|
* [关闭公钥访问](#关闭公钥访问)
|
||||||
* [关闭web管理](#关闭web管理)
|
* [关闭web管理](#关闭web管理)
|
||||||
* [服务端多用户登陆](#服务端多用户登陆)
|
* [服务端多用户登陆](#服务端多用户登陆)
|
||||||
|
* [监听指定ip](#监听指定ip)
|
||||||
* [客户端](#客户端)
|
* [客户端](#客户端)
|
||||||
* [客户端启动](#客户端启动)
|
* [客户端启动](#客户端启动)
|
||||||
* [无配置文件模式](#无配置文件模式)
|
* [无配置文件模式](#无配置文件模式)
|
||||||
@ -405,6 +405,12 @@ web上可以自定义客户端连接的密钥,但是必须具有唯一性
|
|||||||
### 服务端多用户登陆
|
### 服务端多用户登陆
|
||||||
如果将`nps.conf`中的`allow_user_login`设置为true,服务端web将支持多用户登陆,登陆用户名为user,密码为每个客户端的验证密钥,默认该功能是关闭的。
|
如果将`nps.conf`中的`allow_user_login`设置为true,服务端web将支持多用户登陆,登陆用户名为user,密码为每个客户端的验证密钥,默认该功能是关闭的。
|
||||||
|
|
||||||
|
### 监听指定ip
|
||||||
|
|
||||||
|
nps支持每个隧道监听不同的服务端端口,可在web中控制,或者npc配置文件中(可忽略,默认为0.0.0.0)
|
||||||
|
```ini
|
||||||
|
server_ip=xxx
|
||||||
|
```
|
||||||
|
|
||||||
## 客户端
|
## 客户端
|
||||||
|
|
||||||
@ -424,8 +430,8 @@ web上可以自定义客户端连接的密钥,但是必须具有唯一性
|
|||||||
##### 全局配置
|
##### 全局配置
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
tp=tcp
|
conn_type=tcp
|
||||||
vkey=123
|
vkey=123
|
||||||
username=111
|
username=111
|
||||||
password=222
|
password=222
|
||||||
@ -438,11 +444,11 @@ max_conn=10
|
|||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
server | 服务端ip:port
|
server_addr | 服务端ip:port
|
||||||
tp | 与服务端通信模式(tcp或kcp)
|
conn_type | 与服务端通信模式(tcp或kcp)
|
||||||
vkey|服务端配置文件中的密钥(非web)
|
vkey|服务端配置文件中的密钥(非web)
|
||||||
username|socks5或http(s)密码保护用户名(可忽略)
|
username|socks5或http(s)密码保护用户名(可忽略)
|
||||||
username|socks5或http(s)密码保护密码(可忽略)
|
password|socks5或http(s)密码保护密码(可忽略)
|
||||||
compress|是否压缩传输(true或false或忽略)
|
compress|是否压缩传输(true或false或忽略)
|
||||||
crypt|是否加密传输(true或false或忽略)
|
crypt|是否加密传输(true或false或忽略)
|
||||||
rate_limit|速度限制,可忽略
|
rate_limit|速度限制,可忽略
|
||||||
@ -453,11 +459,11 @@ max_conn|最大连接数,可忽略
|
|||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[web1]
|
[web1]
|
||||||
host=a.proxy.com
|
host=a.proxy.com
|
||||||
target=127.0.0.1:8080,127.0.0.1:8082
|
target_addr=127.0.0.1:8080,127.0.0.1:8082
|
||||||
host_change=www.proxy.com
|
host_change=www.proxy.com
|
||||||
header_set_proxy=nps
|
header_set_proxy=nps
|
||||||
```
|
```
|
||||||
@ -465,7 +471,7 @@ header_set_proxy=nps
|
|||||||
---|---
|
---|---
|
||||||
web1 | 备注
|
web1 | 备注
|
||||||
host | 域名(http|https都可解析)
|
host | 域名(http|https都可解析)
|
||||||
target|内网目标,负载均衡时多个目标,逗号隔开
|
target_addr|内网目标,负载均衡时多个目标,逗号隔开
|
||||||
host_change|请求host修改
|
host_change|请求host修改
|
||||||
header_xxx|请求header修改或添加,header_proxy表示添加header proxy:nps
|
header_xxx|请求header修改或添加,header_proxy表示添加header proxy:nps
|
||||||
|
|
||||||
@ -473,96 +479,96 @@ header_xxx|请求header修改或添加,header_proxy表示添加header proxy:np
|
|||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[tcp]
|
[tcp]
|
||||||
mode=tcp
|
mode=tcp
|
||||||
target=127.0.0.1:8080
|
target_addr=127.0.0.1:8080
|
||||||
port=9001
|
server_port=9001
|
||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | tcp
|
mode | tcp
|
||||||
port | 在服务端的代理端口
|
server_port | 在服务端的代理端口
|
||||||
target|内网目标
|
tartget_addr|内网目标
|
||||||
|
|
||||||
##### udp隧道模式
|
##### udp隧道模式
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[udp]
|
[udp]
|
||||||
mode=udp
|
mode=udp
|
||||||
target=127.0.0.1:8080
|
target_addr=127.0.0.1:8080
|
||||||
port=9002
|
server_port=9002
|
||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | udp
|
mode | udp
|
||||||
port | 在服务端的代理端口
|
server_port | 在服务端的代理端口
|
||||||
target|内网目标
|
target_addr|内网目标
|
||||||
##### http代理模式
|
##### http代理模式
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[http]
|
[http]
|
||||||
mode=httpProxy
|
mode=httpProxy
|
||||||
port=9003
|
server_port=9003
|
||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | httpProxy
|
mode | httpProxy
|
||||||
port | 在服务端的代理端口
|
server_port | 在服务端的代理端口
|
||||||
##### socks5代理模式
|
##### socks5代理模式
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[socks5]
|
[socks5]
|
||||||
mode=socks5
|
mode=socks5
|
||||||
port=9004
|
server_port=9004
|
||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | socks5
|
mode | socks5
|
||||||
port | 在服务端的代理端口
|
server_port | 在服务端的代理端口
|
||||||
##### 私密代理模式
|
##### 私密代理模式
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[secret_ssh]
|
[secret_ssh]
|
||||||
mode=secret
|
mode=secret
|
||||||
password=ssh2
|
password=ssh2
|
||||||
target=10.1.50.2:22
|
target_addr=10.1.50.2:22
|
||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | secret
|
mode | secret
|
||||||
password | 唯一密钥
|
password | 唯一密钥
|
||||||
target|内网目标
|
target_addr|内网目标
|
||||||
|
|
||||||
##### p2p代理模式
|
##### p2p代理模式
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[p2p_ssh]
|
[p2p_ssh]
|
||||||
mode=p2p
|
mode=p2p
|
||||||
password=ssh2
|
password=ssh2
|
||||||
target=10.1.50.2:22
|
target_addr=10.1.50.2:22
|
||||||
```
|
```
|
||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | p2p
|
mode | p2p
|
||||||
password | 唯一密钥
|
password | 唯一密钥
|
||||||
target|内网目标
|
target_addr|内网目标
|
||||||
|
|
||||||
|
|
||||||
##### 文件访问模式
|
##### 文件访问模式
|
||||||
@ -570,11 +576,11 @@ target|内网目标
|
|||||||
|
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server=1.1.1.1:8284
|
server_addr=1.1.1.1:8284
|
||||||
vkey=123
|
vkey=123
|
||||||
[file]
|
[file]
|
||||||
mode=file
|
mode=file
|
||||||
port=9100
|
server_port=9100
|
||||||
local_path=/tmp/
|
local_path=/tmp/
|
||||||
strip_pre=/web/
|
strip_pre=/web/
|
||||||
````
|
````
|
||||||
@ -582,7 +588,7 @@ strip_pre=/web/
|
|||||||
项 | 含义
|
项 | 含义
|
||||||
---|---
|
---|---
|
||||||
mode | file
|
mode | file
|
||||||
port | 服务端开启的端口
|
server_port | 服务端开启的端口
|
||||||
local_path|本地文件目录
|
local_path|本地文件目录
|
||||||
strip_pre|前缀
|
strip_pre|前缀
|
||||||
|
|
||||||
@ -698,8 +704,8 @@ allow_ports=9001-9009,10001,11000-12000
|
|||||||
```ini
|
```ini
|
||||||
[tcp]
|
[tcp]
|
||||||
mode=tcp
|
mode=tcp
|
||||||
port=9001-9009,10001,11000-12000
|
server_port=9001-9009,10001,11000-12000
|
||||||
target=8001-8009,10002,13000-14000
|
target_port=8001-8009,10002,13000-14000
|
||||||
```
|
```
|
||||||
|
|
||||||
逗号分隔,可单个或者范围,注意上下端口的对应关系,无法一一对应将不能成功
|
逗号分隔,可单个或者范围,注意上下端口的对应关系,无法一一对应将不能成功
|
||||||
@ -707,11 +713,11 @@ target=8001-8009,10002,13000-14000
|
|||||||
```ini
|
```ini
|
||||||
[tcp]
|
[tcp]
|
||||||
mode=tcp
|
mode=tcp
|
||||||
port=9001-9009,10001,11000-12000
|
server_port=9001-9009,10001,11000-12000
|
||||||
target=8001-8009,10002,13000-14000
|
target_port=8001-8009,10002,13000-14000
|
||||||
targetAddr=10.1.50.2
|
target_ip=10.1.50.2
|
||||||
```
|
```
|
||||||
填写targetAddr后则表示映射的该地址机器的端口,忽略则便是映射本地127.0.0.1,仅范围映射时有效
|
填写target_ip后则表示映射的该地址机器的端口,忽略则便是映射本地127.0.0.1,仅范围映射时有效
|
||||||
### 守护进程
|
### 守护进程
|
||||||
本代理支持守护进程,使用示例如下,服务端客户端所有模式通用,支持linux,darwin,windows。
|
本代理支持守护进程,使用示例如下,服务端客户端所有模式通用,支持linux,darwin,windows。
|
||||||
```
|
```
|
||||||
@ -736,11 +742,11 @@ KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价
|
|||||||
```ini
|
```ini
|
||||||
[web1]
|
[web1]
|
||||||
host=a.proxy.com
|
host=a.proxy.com
|
||||||
target=127.0.0.1:7001
|
target_addr=127.0.0.1:7001
|
||||||
location=/test
|
location=/test
|
||||||
[web2]
|
[web2]
|
||||||
host=a.proxy.com
|
host=a.proxy.com
|
||||||
target=127.0.0.1:7002
|
target_addr=127.0.0.1:7002
|
||||||
location=/static
|
location=/static
|
||||||
```
|
```
|
||||||
对于`a.proxy.com/test`将转发到`web1`,对于`a.proxy.com/static`将转发到`web2`
|
对于`a.proxy.com/test`将转发到`web1`,对于`a.proxy.com/static`将转发到`web2`
|
||||||
@ -792,13 +798,13 @@ export NPC_SERVER_VKEY=xxxxx
|
|||||||
**在配置文件启动模式下:**
|
**在配置文件启动模式下:**
|
||||||
```ini
|
```ini
|
||||||
[common]
|
[common]
|
||||||
server={{.NPC_SERVER_ADDR}}
|
server_addr={{.NPC_SERVER_ADDR}}
|
||||||
tp=tcp
|
conn_type=tcp
|
||||||
vkey={{.NPC_SERVER_VKEY}}
|
vkey={{.NPC_SERVER_VKEY}}
|
||||||
auto_reconnection=true
|
auto_reconnection=true
|
||||||
[web]
|
[web]
|
||||||
host={{.NPC_WEB_HOST}}
|
host={{.NPC_WEB_HOST}}
|
||||||
target={{.NPC_WEB_TARGET}}
|
target_addr={{.NPC_WEB_TARGET}}
|
||||||
```
|
```
|
||||||
在配置文件中填入相应的环境变量名称,npc将自动进行渲染配置文件替换环境变量
|
在配置文件中填入相应的环境变量名称,npc将自动进行渲染配置文件替换环境变量
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[common]
|
[common]
|
||||||
server_addr=127.0.0.1:8024
|
server_addr=127.0.0.1:8024
|
||||||
conn_type=tcp
|
conn_type=tcp
|
||||||
vkey=nps
|
vkey=123
|
||||||
auto_reconnection=true
|
auto_reconnection=true
|
||||||
|
|
||||||
[health_check_test1]
|
[health_check_test1]
|
||||||
@ -20,11 +20,11 @@ health_check_type=tcp
|
|||||||
health_check_target=127.0.0.1:8083,127.0.0.1:8082
|
health_check_target=127.0.0.1:8083,127.0.0.1:8082
|
||||||
[web]
|
[web]
|
||||||
host=b.o.com
|
host=b.o.com
|
||||||
target_addr=127.0.0.1:8080
|
target_addr=127.0.0.1:8080,127.0.0.1:8082
|
||||||
|
|
||||||
[tcp]
|
[tcp]
|
||||||
mode=tcp
|
mode=tcp
|
||||||
target=127.0.0.1:8080
|
target_addr=127.0.0.1:8080
|
||||||
server_port=10000
|
server_port=10000
|
||||||
|
|
||||||
[socks5]
|
[socks5]
|
||||||
|
@ -161,7 +161,7 @@ func dealHost(s string) *file.Host {
|
|||||||
h.Target = strings.Replace(item[1], ",", "\n", -1)
|
h.Target = strings.Replace(item[1], ",", "\n", -1)
|
||||||
case "host_change":
|
case "host_change":
|
||||||
h.HostChange = item[1]
|
h.HostChange = item[1]
|
||||||
case "schemego":
|
case "scheme":
|
||||||
h.Scheme = item[1]
|
h.Scheme = item[1]
|
||||||
case "location":
|
case "location":
|
||||||
h.Location = item[1]
|
h.Location = item[1]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user