nps是一款轻量级、高性能、功能强大的代理服务器。目前支持tcp、udp流量转发,。。。

nps是⼀款轻量级、⾼性能、功能强⼤的内⽹穿透代理服务器。
⽬前⽀持tcp、udp流量转发,。。。
nps
nps是⼀款轻量级、⾼性能、功能强⼤的内⽹穿透代理服务器。⽬前⽀持tcp、udp流量转发,可⽀持任何tcp、udp上层协议(访问内⽹⽹站、本地⽀付接⼝调试、ssh访问、远程桌⾯,内⽹dns解析等等……),此外还⽀持内⽹http代理、内⽹socks5代理、p2p等,并带有功能强⼤的web管理端。
背景
1. 做开发、⼩程序开发等----> 域名代理模式
2. 想在外⽹通过ssh连接内⽹的机器,做云服务器到内⽹服务器端⼝的映射,----> tcp代理模式
3. 在⾮内⽹环境下使⽤内⽹dns,或者需要通过udp访问内⽹机器等----> udp代理模式
4. 在外⽹使⽤HTTP代理访问内⽹站点----> http代理模式
5. 搭建⼀个内⽹穿透ss,在外⽹如同使⽤内⽹vpn⼀样访问内⽹资源或者设备----> socks5代理模式
⽬录
安装
releases安装
下载对应的系统版本即可,服务端和客户端是单独的
源码安装
安装源码
go get -u github/
池炳文编译
go build cmd/
go build cmd/
使⽤⽰例
统⼀准备⼯作(必做)
开启服务端,假设公⽹服务器ip为1.1.1.1,配置⽂件中bridge_port为8284,配置⽂件中web_port为8080
访问1.1.1.1:8080
在客户端管理中创建⼀个客户端,记录下验证密钥
内⽹客户端运⾏(windows使⽤cmd运⾏加.exe)
./npc -server=1.1.1.1:8284 -vkey=客户端的密钥
域名解析
适⽤范围:⼩程序开发、开发、产品演⽰
假设场景:金第梦想山
有⼀个域名proxy,有⼀台公⽹机器ip为1.1.1.1
两个内⽹开发站点127.0.0.1:81,127.0.0.1:82
想通过(http|)a.proxy访问127.0.0.1:81,通过(http|)b.proxy访问127.0.0.1:82
使⽤步骤
将*.proxy解析到公⽹服务器1.1.1.1
点击刚才创建的客户端的域名管理,添加两条规则规则:1、域名:a.proxy,内⽹⽬标:127.0.0.1:81,2、域名:b.proxy,内⽹⽬标:127.0.0.1:82
https: 如需使⽤https请进⾏相关配置,详见
tcp隧道
适⽤范围: ssh、远程桌⾯等tcp连接场景
假设场景:想通过访问公⽹服务器1.1.1.1的8001端⼝,连接内⽹机器10.1.50.101的22端⼝,实现ssh连接
使⽤步骤
在刚才创建的客户端隧道管理中添加⼀条tcp隧道,填写监听的端⼝(8001)、内⽹⽬标ip和⽬标端⼝(10.1.50.101:22),保存。
访问公⽹服务器ip(1.1.1.1),填写的监听端⼝(8001),相当于访问内⽹ip(10.1.50.101):⽬标端⼝(22),例如:ssh -p 8001 root@1.1.1.1
udp隧道
适⽤范围:内⽹dns解析等udp连接场景
假设场景:内⽹有⼀台dns(10.1.50.102:53),在⾮内⽹环境下想使⽤该dns,公⽹服务器为1.1.1.1
使⽤步骤
在刚才创建的客户端的隧道管理中添加⼀条udp隧道,填写监听的端⼝(53)、内⽹⽬标ip和⽬标端⼝(10.1.50.102:53),保存。
修改需要使⽤的dns地址为1.1.1.1,则相当于使⽤10.1.50.102作为dns服务器
socks5代理
适⽤范围:在外⽹环境下如同使⽤vpn⼀样访问内⽹设备或者资源
假设场景:想将公⽹服务器1.1.1.1的8003端⼝作为socks5代理,达到访问内⽹任意设备或者资源的效果
使⽤步骤
在刚才创建的客户端隧道管理中添加⼀条socks5代理,填写监听的端⼝(8003),保存。
在外⽹环境的本机配置socks5代理(例如使⽤proxifier进⾏全局代理),ip为公⽹服务器ip(1.1.1.1),端⼝为填写的监听端⼝(8003),即可畅享内⽹了
http正向代理
适⽤范围:在外⽹环境下使⽤http正向代理访问内⽹站点
假设场景:想将公⽹服务器1.1.1.1的8004端⼝作为http代理,访问内⽹⽹站婚育与健康
使⽤步骤
在刚才创建的客户端隧道管理中添加⼀条http代理,填写监听的端⼝(8004),保存。
在外⽹环境的本机配置http代理,ip为公⽹服务器ip(1.1.1.1),端⼝为填写的监听端⼝(8004),即可访问了
私密代理
适⽤范围:⽆需占⽤多余的端⼝、安全性要求较⾼可以防⽌其他⼈连接的tcp服务,例如ssh。
假设场景:⽆需新增多的端⼝实现访问内⽹服务器10.1.50.2的22端⼝
使⽤步骤
在刚才创建的客户端中添加⼀条私密代理,并设置唯⼀密钥secrettest和内⽹⽬标10.1.50.2:22
在需要连接ssh的机器上以执⾏命令
./npc -server=1.1.1.1:8284 -vkey=vkey -type=tcp -password=secrettest -local_type=secret
如需指定本地端⼝可加参数-local_port=xx,默认为2000
注意: password为web管理上添加的唯⼀密钥,具体命令可查看web管理上的命令提⽰
假设10.1.50.2⽤户名为root,现在执⾏ssh -p 2000 root@1.1.1.1即可访问ssh
p2p服务
适⽤范围:⼤流量传输场景,流量不经过公⽹服务器,但是由于p2p穿透和nat类型关系较⼤,不保证100%成功,⽀持⼤部分nat类型。
假设场景:内⽹1机器ip为10.1.50.2 内⽹2机器2 ip为10.2.50.2
想通过访问内⽹1机器1的2000端⼝---->访问到内⽹2机器3 10.2.50.3的22端⼝
使⽤步骤
在f中设置p2p_ip(nps服务器ip)和p2p_port(nps服务器udp端⼝)
在刚才刚才创建的客户端中添加⼀条p2p代理,并设置唯⼀密钥p2pssh
在机器1执⾏命令
./npc -server=1.1.1.1:8284 -vkey=123 -password=p2pssh -target=10.2.50.3:22
如需指定本地端⼝可加参数-local_port=xx,默认为2000
注意: password为web管理上添加的唯⼀密钥,具体命令可查看web管理上的命令提⽰
假设机器3⽤户名为root,现在在机器1上执⾏ssh -p 2000 root@127.0.0.1即可访问机器2的ssh
web管理
介绍京东商城淘宝网
可在⽹页上配置和管理各个tcp、udp隧道、内⽹站点代理,http、https解析等,功能强⼤,操作⽅便。
提⽰:使⽤web模式时,服务端执⾏⽂件必须在项⽬根⽬录,否则⽆法正确加载配置⽂件
启动
服务端测试
./nps test
如有错误请及时修改配置⽂件,⽆错误可继续进⾏下去
服务端启动
./nps start
如果⽆需daemon运⾏或者打开后⽆法正常访问web管理,去掉start查看⽇志运⾏即可
web管理
进⼊web界⾯,公⽹ip:web界⾯端⼝(默认8080),密码默认为123
进⼊web管理界⾯,有详细的说明
服务端配置⽂件重载
如果是daemon启动金钱的魔力教学设计
./nps reload
说明:仅⽀持部分配置重载,例如allow_user_login auth_crypt_key auth_key web_username web_password等,未来将⽀持更多
服务端停⽌或重启
如果是daemon启动
./nps stop|restart
服务端配置⽂件
游园惊梦 影评/f
名称含义
web_port web管理端⼝
web_password web界⾯管理密码
web_username 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端⼝
使⽤https
⽅式⼀:类似于nginx实现https的处理
在配置⽂件中将https_proxy_port设置为443或者其他你想配置的端⼝,和在web中对应域名编辑中设置对应的证书路径,将https_just_proxy设置为false,然后就和http代理⼀样了
此外:可以在f中设置⼀个默认的https配置,当遇到未在web中设置https证书的域名解析时,将⾃动使⽤默认证书,另还有⼀种情况就是对于某些请求的clienthello不携带sni扩展信息,nps也将⾃动使⽤默认证书
⽅式⼆:在内⽹对应服务器上设置https
在f中将https_just_proxy设置为true,并且打开https_proxy_port端⼝,然后nps将直接转发https请求到内⽹服务器上,由内⽹服务器进⾏https处理
与nginx配合
有时候我们还需要在云服务器上运⾏nginx来保证静态⽂件缓存等,本代理可和nginx配合使⽤,在配置⽂件中将httpProxyPort设置为⾮80端⼝,并在nginx中配置代理,例如httpProxyPort为8024时
server {

本文发布于:2024-09-25 04:26:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/181799.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代理   配置   访问   客户端   管理   服务端
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议