当前位置:首页 > 代理服务器 >

一款轻量级、功能强大的内网穿透代理服务器

时间:2020-02-17 15:13       来源: 大鲸vps 浏览
  一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。
一款轻量级、功能强大的内网穿透代理服务器
  vps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
  做微信公众号开发、小程序开发等----> 域名代理模式
  想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,----> tcp代理模式
  在非内网环境下使用内网dns,或者需要通过udp访问内网机器等----> udp代理模式
  在外网使用HTTP代理访问内网站点----> http代理模式
  搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备----> socks5代理模式
  源码安装
  安装源码
  go get -u github.com/cnlh/vps...
  编译
  go build cmd/vps/vps.go
  go build cmd/npc/npc.go
  使用示例
  统一准备工作(必做)
  开启服务端,假设公网服务器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.com,有一台公网机器ip为1.1.1.1
  两个内网开发站点127.0.0.1:81,127.0.0.1:82
  想通过(http|https://)a.proxy.com访问127.0.0.1:81,通过(http|https://)b.proxy.com访问127.0.0.1:82
  使用步骤
  将*.proxy.com解析到公网服务器1.1.1.1
  点击刚才创建的客户端的域名管理,添加两条规则规则:1、域名:a.proxy.com,内网目标:127.0.0.1:81,2、域名:b.proxy.com,内网目标:127.0.0.1:82
  现在访问(http|https://)a.proxy.com,b.proxy.com即可成功
  https: 如需使用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为127.0.0.1,则相当于使用10.1.50.202作为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类型。nat类型检测
  假设场景: 内网1机器ip为10.1.50.2 内网2机器2 ip为10.2.50.2
  想通过访问内网1机器1的2000端口---->访问到内网2机器3 10.2.50.3的22端口
  使用步骤
  在vps.conf中设置p2p_ip(vps服务器ip)和p2p_port(vps服务器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模式时,服务端执行文件必须在项目根目录,否则无法正确加载配置文件
  启动
  服务端测试
  ./vps test
  如有错误请及时修改配置文件,无错误可继续进行下去
  服务端启动
  ./vps start
  如果无需daemon运行或者打开后无法正常访问web管理,去掉start查看日志运行即可
  web管理
  进入web界面,公网ip:web界面端口(默认8080),密码默认为123
  进入web管理界面,有详细的说明
  服务端配置文件重载
  如果是daemon启动
  ./vps reload
  说明: 仅支持部分配置重载,例如allow_user_login auth_crypt_key auth_key web_username web_password 等,未来将支持更多
  服务端停止或重启
  如果是daemon启动
  ./vps stop|restart
  更多详细说明访问开源项目
  https://github.com/cnlh/vps