NPS使用指南
NPS
一款轻量级、高性能、功能强大的内网穿透代理服务器
- 几乎支持所有协议
- 支持内网http代理、内网socks5代理、p2p等
- 简洁但功能强大的WEB管理界面
- 支持服务端、客户端同时控制
- 扩展功能强大
- 全平台兼容,一键注册为服务
安装
nps项目在2021年8月份左右停止了最后的更新,虽然有很多二开项目。
安装包安装
文档:Document
Github:ehang-io/nps: 一款轻量级、高性能、功能强…
前往Release下载对应架构安装包(以Ubuntu20.04 x86_64 为例)
1 | mkdir nps |
mkdir创建nps文件夹
cd进入nps文件夹
wget下载对应架构安装包
tar解压压缩包
chmod赋予执行权限
nps安装
conf文件配置
配置文件位于:/etc/nps/conf/nps.conf
nano /etc/nps/conf/nps.conf
修改配置文件
web_port web管理端口
web_password web界面管理密码
web_username web界面管理账号
一般注意这几个即可
以Docker部署服务端
docker拉取镜像:
命令:docker pull ffdfgdfg/nps
(现已404,有很多二开仓库,可以更换其他项目)
下载conf
到github下载conf文件夹
在nps.conf
中将https_just_proxy
设置为true,并且打开https_proxy_port
端口,然后nps将直接转发https请求到内网服务器上,由内网服务器进行https处理
1 | appname = 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
在/root/nps/conf
目录下放置配置文件,然后启动
1 | docker run -d -p 20000-20010:20000-20010 -v /root/nps/conf:/conf --name=nps ffdfgdfg/nps |
客户端
系统服务保活
在服务端添加客户端,会生成对应的启动命令
使用 nohup
命令
nohup
命令可以使进程忽略 SIGHUP 信号,即使终端关闭,进程也会继续运行。
1 | nohup npc -server=... -vkey=... -type=tcp > /dev/null 2>&1 & |
nohup
: 调用 nohup 命令。>
: 重定向标准输出。/dev/null
: 一个特殊的设备文件,所有写入它的数据都会被丢弃。2>&1
: 将标准错误重定向到标准输出。&
: 将进程放入后台运行。
由于在后台运行,如需要关闭ps aux | grep npc
查找叫npc的进程,找到对应的PID,使用kill npc对应的PID
杀死npc进程。
给与权限
1 | chmod +x start.sh |
使用systemd
服务
创建一个systemd
服务,这样nps
就可以作为系统服务运行,不受终端关闭的影响。
创建服务文件
1 | sudo nano /etc/systemd/system/nps.service |
1 | [Unit] |
启用并启动服务
1 | sudo systemctl enable nps.service |