NPS安装
介绍
一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。
这个项目已经不更新了,frp还在更新,但是我还是要用nps😋两者我用不出差别,nps在管理上更为方便,所以选择了nps。
GitHub地址:ehang-io/nps: (github.com)
官方文档:Document (ehang-io.github.io)
nps服务端docker hub地址:ffdfgdfg/nps - Docker Image | Docker Hub
npc客户端docker hub地址:ffdfgdfg/npc - Docker Image | Docker Hub
服务端安装
如果没有docker可以看这篇文章:Docker安装
需要下载config文件:官网下载
修改/conf/nps.conf文件,官方配置文件参考:配置文件 (ehang-io.github.io)
appname = nps
#Boot mode(dev|pro)
runmode = dev
#HTTP(S)代理端口,如果为空则不会启动。
http_proxy_ip=0.0.0.0
http_proxy_port=
https_proxy_port=
https_just_proxy=true
#默认的 HTTPS 证书设置
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key
##bridge
bridge_type=tcp
bridge_port=8024
bridge_ip=0.0.0.0
# 公共密码,客户端可以使用它连接服务器。
# 连接建立后,服务器将能够根据自己的配置文件打开相关端口并解析相关域名。.
# 客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式
public_vkey=
# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
log_level=7
#log_path=nps.log
#是否限制 IP 访问,可以设置为 true(启用限制)、false(禁用限制)或 ignore(忽略此设置)
#ip_limit=true
#p2p
#服务端Ip,使用p2p模式必填
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
#web_host=a.o.com
web_username=admin
web_password=password
web_port = 8080
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# 如果 Web 应用在代理服务器下使用子路径(如 http://host/nps),则需要进行相应的配置
#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
auth_key=test
auth_crypt_key =1234567812345678
#上面两个一定要改,默认不安全
#allow_ports=9001-9009,10001,11000-12000
#Web 管理多用户登录
allow_user_login=false
allow_user_register=false
allow_user_change_username=false
#extension
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false
#cache
http_cache=false
http_cache_length=100
#get origin ip
http_add_origin_header=false
#pprof debug options
#pprof_ip=0.0.0.0
#pprof_port=9999
#client disconnect timeout
disconnect_timeout=60
vps新建一个nps文件夹,将/conf文件夹上传进去,修改路径,
启动:
docker run -d --name nps --net=host -v /修改为你的路径/conf:/conf ffdfgdfg/nps
服务端配置
在上面的配置中web port为8080,使用IP:8080即可登录。
登录后新建客户端,填写备注,如果使用socks5、web、http转发代理最好填上认证用户名和密码,其他配置随意。
客户端安装
建好后点击加号(点开变➖号)看看详细配置,可以得到客户端命令。
使用无配置文件模式启动,各种配置在服务端web管理中完成,客户端除运行一条命令外无需任何其他设置
将上面得到的参数填入到下面的命令中,一键运行。
docker run -d --name npc --net=host ffdfgdfg/npc -server=<ip:port> -vkey=<web界面中显示的密钥> <以及一些其他参数>
客户端安装好后在服务器web端可以看到客户端的IP地址、网速、连接情况。
配置
我主要用tcp隧道和socks5代理,下面只介绍这两种,详细功能请看官网文档。
TCP隧道
在客户端列表中记下所穿透的客户端ID,在TCP隧道列表新建隧道,输入客户端id与备注,随便选一个服务端想要开的端口,目标填写客户端想要穿透的服务的内网ip及端口。
此时通过ip:28096
就可以访问家中的emby服务了。完全不需要在客户端修改配置,薄纱frp😋
然后通过nginxWebUI反代一下,即可添加ssl,使用https 443端口访问🥰
这是我的nginxWebUI教程😊:nginxWebUI使用方法
socks代理
连上socks代理,网络环境就像是在家中局域网一样了,可以用内网ip打开各种服务,配置方法与上面的相似。
电脑用v2rayn客户端连接socks5节点不能用内网ip访问家中服务,虽然查询ip已经变成家中IP了,甚至能走家里openwrt的代理;
找了个sstap游戏加速器才能访问内网服务,暂不清楚原因。