月下博客

一个优秀的跨平台 Socks5代理软件 —— Brook 服务端教程

本文最后更新于 2018年4月9日 14:20 可能会因为没有更新而失效。如已失效或需要修正,请留言!

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

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

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

Brook 客户端教程:https://doub.io/brook-jc2/

Brook 服务端脚本:『原创』一个优秀的跨平台 Socks5代理软件 —— Brook 一键安装管理脚本


安装步骤

首先建立并进入文件夹(假设你当前目录是 /root ,那么 Brook的目录就是 /root/brook ):

mkdir brook && cd brook

然后获取最新的版本号:

brook_ver=$(wget --no-check-certificate -qO- https://api.github.com/repos/txthinking/brook/releases | grep -o '"tag_name": ".*"' |head -n 1| sed 's/"//g' | sed 's/tag_name: //g') && echo ${brook_ver}

执行完后会输出获取的最新版本号,比如 v20180401 这样的日期格式,如果返回是空或者其他错误的内容,那么就代表获取失败。

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


使用 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

使用方法

首先我们来查看一下帮助文档,命令: ./brook --help

参数解释

点击展开 查看参数解释

# 模式命令:
server         以 Brook 协议 服务器模式 运行
servers        以 Brook 协议 多服务器模式 运行
client         以 Brook 协议 客户端模式 运行
streamserver   以 Brook stream 协议 服务器模式 运行
streamservers  以 Brook stream 协议 多服务器模式 运行
streamclient   以 Brook stream 协议 客户端模式 运行
ssserver       以 Shadowsocks 协议 服务器模式 运行,加密方式仅支持 aes-256-cfb
ssservers      以 Shadowsocks 协议 多服务器模式 运行,加密方式仅支持 aes-256-cfb
ssclient       以 Shadowsocks 协议 客户端模式 运行,加密方式仅支持 aes-256-cfb
socks5         以 Socks5 协议 服务器模式 运行
relay          以 单中继/中转 模式运行
relays         以 多中继/中转 模式运行
qr             输出 Brook 二维码
socks5tohttp   将socks5转换为http代理
help, h        显示帮助,命令列表说明

# 全局参数:
--debug, -d               启用调试功能,显示更多日志
--listen value, -l value  监听地址(默认: ":6060")
--help, -h                显示帮助
--version, -v             打印版本

# 账号参数:
--listen value, -l value    服务器监听地址,如: 0.0.0.0:1080
--password value, -p value  服务器密码

本篇文章主要介绍 Brook模式的使用方法,其他模式会另开文章写的。

Brook 自主研发的混淆协议有两个:

server
# Brook 新版 默认混淆协议

streamserver
# Brook 旧版 混淆协议,根据反馈,使用后可能会速度降低,可能适合于使用 Brook新版混淆协议 速度慢的人。

单端口启动

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

# 启动一个单端口 Brook协议模式
# 监听端口为 2333,密码为 doub.io。
nohup ./brook server -l :2333 -p "doub.io" > /dev/null 2>&1 &

# 如果你使用 Brook的新版混淆协议[server]速度慢,那么可以尝试旧版混淆协议[streamserver](注意:此混淆协议可能会速度降低,仅适合使用新版协议慢的)
nohup ./brook streamserver -l :2333 -p "doub.io" > /dev/null 2>&1 &

多端口启动

# 启动一个多端口 Brook协议模式
# 账号分别为:
#     监听端口 2333,密码 doub.io1
#     监听端口 6666,密码 doub.io2
#     监听端口 8888,密码 doub.io3
 
nohup ./brook servers -l ":2333 doub.io1" -l ":6666 doub.io2" -l ":8888 doub.io3" > /dev/null 2>&1 &

# 如果你使用 Brook的新版混淆协议[server]速度慢,那么可以尝试旧版混淆协议[streamserver](注意:此混淆协议可能会速度降低,仅适合使用新版协议慢的)
nohup ./brook streamservers -l ":2333 doub.io1" -l ":6666 doub.io2" -l ":8888 doub.io3" > /dev/null 2>&1 &

停止Brook

kill -9 $(ps -ef|grep "brook"|grep -v grep|awk '{print $2}')

其他说明

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不可用,日志提示 xxx Expired request

出现这种问题说明你的服务器时间与本地时间相差过大,请修改服务器时区,或者手动修改服务器系统时间(注意也要校准自己本地设备时间)!

点击展开 查看更多

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 修改时区为北京时区(上海)

date -s "2017-11-02 19:14:00"
# 修改系统时间为 2017年11月02日 晚上19点14分00秒

date "+%Y-%m-%d %H:%M:%S %u %Z"
# 查看服务器当前时间

提示 wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

点击展开 查看更多

# CentOS系统:
yum install -y wget

# Debian/Ubuntu系统:
apt-get install -y wget

升级 Brook

升级很简单,只需要重新执行一开始的安装步骤即可,区别是不需要再新建文件夹了,直接进入文件夹即可。

卸载 Brook

卸载前先停止 Brook,然后直接删除 Brook的文件夹即可。

kill -9 $(ps -ef|grep "brook"|grep -v grep|awk '{print $2}')
# 先停止,后删除(假设安装在 /root 目录内,那么文件夹就是 /root/brook
rm -rf /root/brook

转载请超链接注明:月下博客 » 一个优秀的跨平台 Socks5代理软件 —— Brook 服务端教程
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!