默认分类

使用 Brook 实现中继(中转/端口转发)加速

Brook是一个由 Go语言编写的跨平台代理软件,支持 Linux/MacOS/Windows/Android/iOS 各个平台。

同时因为 Go语言的特性,在操作使用上非常简单,本篇主要介绍 Brook服务端中 端口转发的使用方法。

优点是:安装、配置简单,支持TCP、UDP转发;

缺点是:不支持端口段转发,如果要转发多个端口,多开即可。

Brook Github项目:https://github.com/txthinking/brook

安装步骤
首先建立并进入文件夹(假设你当前目录是 /root ,那么 Brook的目录就是 /root/brook ):
mkdir brook && cd brook
复制代码
然后获取最新的版本号:
brook_ver=$(wget -qO- "https://github.com/txthinking/brook/tags"| grep "/txthinking/brook/releases/tag/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/">//') && echo ${brook_ver}
复制代码
执行完后会输出获取的最新版本号,比如 v20171111 这样的日期格式,如果返回是空或者其他错误的内容,那么就代表获取失败。

获取失败的情况请去 Github 获取最新的版本号,例如 v20171111 ,然后执行 brook_ver=v20171111 (自己替换版本号)即可继续下面的下载步骤。

使用 uname -m 命令来判断VPS的位数,如果返回 x86_64 那就是64位,如果返回 i386或i686 那就是32位。

64位系统使用这个:

wget -N --no-check-certificate "https://github.com/txthinking/brook/releases/download/${brook_ver}/brook"

32位系统使用这个:

wget -N --no-check-certificate "https://github.com/txthinking/brook/releases/download/${brook_ver}/brook_linux_386" && mv brook_linux_386 brook
复制代码
最后只需要赋予一下执行权限即可继续看下面的使用方法了。
chmod +x brook
复制代码
使用方法
参数说明:
relay 以 单个端口转发 模式运行
relays 以 多个端口转发 模式运行
复制代码
本篇文章主要介绍 端口转发的两个模式使用方法。

单端口启动
注意:因为前面的安装步骤已经进入了 Brook目录,所以这里不需要再进入目录了。但是以后需要启动Brook的时候,请进入Brook的文件夹,假设你的安装目录是 /root/brook ,那么就使用这个命令 cd /root/brook

启动 一个端口转发

监听端口为 3555,被转发的服务器IP为 2.2.2.2 端口为 6666

nohup ./brook relay -l :3555 -r 2.2.2.2:6666 > /dev/null 2>&1 &
复制代码
多端口启动

启动 多个端口转发

分别为:

监听端口 3555,被转发的服务器IP为 2.2.2.2 端口为 6666

监听端口 6666,被转发的服务器IP为 3.3.3.3 端口为 6688

监听端口 8888,被转发的服务器IP为 6.6.6.6 端口为 7766

nohup ./brook relays -l ":3555 2.2.2.2:6666" -l ":6666 3.3.3.3:6688" -l ":8888 6.6.6.6:7766" > /dev/null 2>&1 &
复制代码
停止Brook
kill -9 $(ps -ef|grep "brook"|grep -v grep|awk '{print $2}')
复制代码

简单解释
注意:假设你的中转服务器也就是现在在操作的服务器 IP 是 1.1.1.1 ,那么你的 中转端口 就是 3555 。你的 被中转服务器的 IP 是 2.2.2.2 ,被中转端口是 6666 。

这时候你的 ShadowsocksR客户端 填写信息的时候只修改 IP为 1.1.1.1 ,端口为 3555 ,其他选项都不变。

原理就是:Shadowsocks客户端通过 1.1.1.1:3555 链接中转服务器 1.1.1.1 ,然后中转服务器把端口 3555 的流量转发到 被中转服务器 2.2.2.2 的端口 6666 上面。然后 被中转服务器 也就是上面的 ShadowsocksR服务端,就会去访问你要的数据,最后依次返回 中继服务器 -> Shadowsocks客户端。

其它说明
Brook 默认支持UDP转发,无需任何设置!

运行Brook无报错,但无法连接,可能是防火墙的问题(如果有外部防火墙,那么也需要开放端口),因为我测试只支持 TCP,那么只需要开放TCP即可。
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

删除防火墙规则,内容一样把 -I 换成 -D 就行了:

iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT
复制代码
卸载 Brook
卸载前先停止 Brook,然后直接删除 Brook的文件夹即可。
kill -9 $(ps -ef|grep "brook"|grep -v grep|awk '{print $2}')

先停止,后删除(假设安装在 /root 目录内,那么文件夹就是 /root/brook

rm -rf /root/brook
复制代码

回复 / 取消回复

  1. lanjuli lanjuli
    Chrome 75 10

    66666

This is just a placeholder img.