官网路径
https://ehang-io.github.io/nps/#/?id=nps
nps 服务端安装及配置
nps 端配置文件,只有conf文件需要按照nps官网的配置 其他的json文件需要手动创建个空的文件即可
| #pwd |
| /usr/local/nps |
| # ll |
| total 12 |
| -rw-r--r-- 1 root root 817 Aug 13 20:40 clients.json |
| -rw-r--r-- 1 root root 0 Aug 13 19:38 hosts.json |
| -rw-r--r-- 1 root root 1964 Aug 13 18:16 nps.conf |
| -rw-r--r-- 1 root root 1904 Aug 13 20:43 tasks.json |
| |
| |
| |
| docker pull ffdfgdfg/nps |
| docker run -d --name nps --net=host -v /usr/local/nps:/conf ffdfgdfg/nps |
服务端配置文件
名称 |
含义 |
web_port |
web管理端口 |
web_password |
web界面管理密码 |
web_username |
web界面管理账号 |
web_base_url |
web管理主路径,用于将web管理置于代理子路径后面 |
bridge_port |
服务端客户端通信端口 |
https_proxy_port |
域名代理https代理监听端口 |
http_proxy_port |
域名代理http代理监听端口 |
auth_key |
web api密钥 |
bridge_type |
客户端与服务端连接方式kcp或tcp |
public_vkey |
客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式 |
ip_limit |
是否限制ip访问,true或false或忽略 |
flow_store_interval |
服务端流量数据持久化间隔,单位分钟,忽略表示不持久化 |
log_level |
日志输出级别 |
auth_crypt_key |
获取服务端authKey时的aes加密密钥,16位 |
p2p_ip |
服务端Ip,使用p2p模式必填 |
p2p_port |
p2p模式开启的udp端口 |
pprof_ip |
debug pprof 服务端ip |
pprof_port |
debug pprof 端口 |
disconnect_timeout |
客户端连接超时,单位 5s,默认值 60,即 300s = 5mins |
npc 客户端docker部署
| docker pull ffdfgdfg/npc |
| docker run -d --name npc --net=host -v /usr/lcoal/npc:/conf ffdfgdfg/npc -config=/conf/npc.conf |
注意npc.conf 建议直接在linux 终端中使用root身份 vim 创建并编辑,否则可能会报错
1.注意编码问题
2.注意权限问题
参考这个
https://github.com/ehang-io/nps/issues/1006
配置文件说明
示例配置文件
全局配置
| [common] |
| server_addr=1.1.1.1:8024 |
| conn_type=tcp |
| vkey=123 |
| username=111 |
| password=222 |
| compress=true |
| crypt=true |
| rate_limit=10000 |
| flow_limit=100 |
| remark=test |
| max_conn=10 |
| |
项 |
含义 |
server_addr |
服务端ip/域名:port |
conn_type |
与服务端通信模式(tcp或kcp) |
vkey |
服务端配置文件中的密钥(非web) |
username |
socks5或http(s)密码保护用户名(可忽略) |
password |
socks5或http(s)密码保护密码(可忽略) |
compress |
是否压缩传输(true或false或忽略) |
crypt |
是否加密传输(true或false或忽略) |
rate_limit |
速度限制,可忽略 |
flow_limit |
流量限制,可忽略 |
remark |
客户端备注,可忽略 |
max_conn |
最大连接数,可忽略 |
pprof_addr |
debug pprof ip:port |
域名代理
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [web1] |
| host=a.proxy.com |
| target_addr=127.0.0.1:8080,127.0.0.1:8082 |
| host_change=www.proxy.com |
| header_set_proxy=nps |
项 |
含义 |
web1 |
备注 |
host |
域名(http |
target_addr |
内网目标,负载均衡时多个目标,逗号隔开 |
host_change |
请求host修改 |
header_xxx |
请求header修改或添加,header_proxy表示添加header proxy:nps |
tcp隧道模式
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [tcp] |
| mode=tcp |
| target_addr=127.0.0.1:8080 |
| server_port=9001 |
项 |
含义 |
mode |
tcp |
server_port |
在服务端的代理端口 |
tartget_addr |
内网目标 |
udp隧道模式
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [udp] |
| mode=udp |
| target_addr=127.0.0.1:8080 |
| server_port=9002 |
项 |
含义 |
mode |
udp |
server_port |
在服务端的代理端口 |
target_addr |
内网目标 |
http代理模式
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [http] |
| mode=httpProxy |
| server_port=9003 |
项 |
含义 |
mode |
httpProxy |
server_port |
在服务端的代理端口 |
socks5代理模式
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [socks5] |
| mode=socks5 |
| server_port=9004 |
| multi_account=multi_account.conf |
项 |
含义 |
mode |
socks5 |
server_port |
在服务端的代理端口 |
multi_account |
socks5多账号配置文件(可选),配置后使用basic_username和basic_password无法通过认证 |
私密代理模式
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [secret_ssh] |
| mode=secret |
| password=ssh2 |
| target_addr=10.1.50.2:22 |
项 |
含义 |
mode |
secret |
password |
唯一密钥 |
target_addr |
内网目标 |
p2p代理模式
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [p2p_ssh] |
| mode=p2p |
| password=ssh2 |
| target_addr=10.1.50.2:22 |
项 |
含义 |
mode |
p2p |
password |
唯一密钥 |
target_addr |
内网目标 |
文件访问模式
利用nps提供一个公网可访问的本地文件服务,此模式仅客户端使用配置文件模式方可启动
| [common] |
| server_addr=1.1.1.1:8024 |
| vkey=123 |
| [file] |
| mode=file |
| server_port=9100 |
| local_path=/tmp/ |
| strip_pre=/web/ |
项 |
含义 |
mode |
file |
server_port |
服务端开启的端口 |
local_path |
本地文件目录 |
strip_pre |
前缀 |
对于strip_pre
,访问公网ip:9100/web/
相当于访问/tmp/
目录
断线重连
| [common] |
| auto_reconnection=true |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)