Bifrost ·
![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)
内网穿透工具,名字的灵感来自战神4中北欧神话的彩虹桥
架构
实现内容
- socks5协议实现
- 网桥
- 代理客户端
- 本地socks->socks免校验代理
使用
在内网启动service
,在公网启动bridge
,使用socks5
代理连接bridge
的proxy
端口即可使用service
的内网环境,
所有的请求都会被service
代理,支持多bridge
、多service
的部署方式
从release中下载当前系统的程序压缩包,
解压后里面会包含一份默认配置.bifrost.yaml
(查看需要 ls -a),程序会根据配置文件.bifrost.yaml
初始化程序,
不过当前版本如果找不到配置也会直接使用代码里预设好的默认配置
也可以自己制定配置文件的位置
# -f 可以制定配置文件
$ bifrost [action] -f ~/.bifrost.yaml
任意访问内网
# 启动网桥,网桥必须在service和client都可以访问的环境下启动
$ bifrost bridge
# 启动代理客户端
$ bifrost service
# 外网启本地代理
$ bifrost proxy
我使用的代理工具是Chrome
上的Proxy SwitchyOmega
,sock5
协议代理到本地8080
端口,done,事实上bifrost proxy本身是可以省略的,但是SwitchyOmega
不支持Sock5 Auth,所以使用proxy中转了一下No Auth的请求。
端口映射
# 启动网桥,网桥必须在service和client都可以访问的环境下启动
$ bifrost bridge
# 启动代理客户端
$ bifrost service
# 外网启动端口映射
$ bifrost mapping
脚本本身支持自定义参数详情可以
# 了解帮助信息
$ bifrost -h
配置
bridge:
# 网桥地址
addr: :7000
# 网桥代理地址
proxyAddr: :8888
service:
# 分组
group: tangtangtang
# 网桥地址,接受多个网桥地址使用`,`分割,如 :7000,:7001
bridgeAddr: :7000
# 密码
password: 123456
proxy:
# 本地代理地址
addr: :8080
# 网桥代理地址
bridgeProxyAddr: :8888
# 分组
group: tangtangtang
# 密码
password: 123456
# 代理类型 http || socks5,默认socks5
type: socks5
mapping:
# 本地代理地址
addr: :8080
# 网桥代理地址
bridgeProxyAddr: :8888
# 映射地址
realAddr: ''
# 分组
group: tangtangtang
# 密码
password: 123456
功能说明
负载均衡
允许使用相同组注册到bridge,根据机器临时id一致性hash策略选择service
多路复用
bridge和service通信使用多路复用策略