Brook is a cross-platform(Linux/MacOS/Windows/Android/iOS) proxy/vpn software.
Brook's goal is to reduce the configuration steps. Keep it simple, stupid.
Download | Server/Client | OS | Arch | Remark |
---|---|---|---|---|
brook | Server & Client | Linux | amd64 | CLI |
brook_linux_386 | Server & Client | Linux | 386 | CLI |
brook_linux_arm64 | Server & Client | Linux | arm64 | CLI |
brook_linux_arm5 | Server & Client | Linux | arm5 | CLI |
brook_linux_arm6 | Server & Client | Linux | arm6 | CLI |
brook_linux_arm7 | Server & Client | Linux | arm7 | CLI |
brook_macos_amd64 | Server & Client | MacOS | amd64 | CLI |
brook_windows_amd64.exe | Server & Client | Windows | amd64 | CLI |
brook_windows_386.exe | Server & Client | Windows | 386 | CLI |
Brook.app.zip | Client | MacOS | amd64 | GUI |
Brook.exe | Client | Windows | amd64 | GUI |
Brook.386.exe | Client | Windows | 386 | GUI |
App Store | Client | iOS | - | GUI |
Google Play / Brook.apk | Client | Android | - | GUI |
MacOS GUI Client
- Need MacOS version >= 10.12
- If MacOS prompts it is from an unidentified developer, then go
System Preferences
->Security & Privacy
, click Open Anyway - You may prefer to copy Brook.app to Application folder
- Follow this pac white list auto proxy rule
Windows GUI Client
- Need Windows version >= 7
- Please set chrome as your default browser
- You may need to run as an administrator
- Follow this pac white list auto proxy rule
Android Client
- Need Android version >= 5.0
- Follow this pac white list auto proxy rule
- Not tested on IPv6
iOS Client
- Need iOS version >= 10.0
- Follow this pac white list auto proxy rule
NAME:
Brook - A Cross-Platform Proxy Software
USAGE:
brook [global options] command [command options] [arguments...]
VERSION:
20170809
AUTHOR:
Cloud <[email protected]>
COMMANDS:
bkserver Run as brook protocol server mode
bkservers Run as brook protocol multiple servers mode
bkclient Run as brook protocol client mode
s5server Run as socks5 encrypt protocol server mode
s5servers Run as socks5 encrypt protocol multiple servers mode
s5client Run as socks5 encrypt protocol client mode
ssserver Run as shadowsocks protocol server mode, fixed method is aes-256-cfb
ssservers Run as shadowsocks protocol multiple servers mode, fixed method is aes-256-cfb
ssclient Run as shadowsocks protocol client mode, fixed method is aes-256-cfb
relay Run as relay mode
relays Run as multiple relays mode
qr Print brook server QR code
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--debug, -d Enable debug, more logs
--listen value, -l value Listen address for debug (default: ":6060")
--help, -h show help
--version, -v print the version
# Run as a brook server
$ brook bkserver -l :9999 -p password -t 10
# Run as a brook server with music
$ brook bkserver -l :9999 -p password -t 10 -m music_name
# Run as multiple brook servers
$ brook bkservers \
-l ":9999 password" \
-l ":8888 password" \
-l ":7777 password music_name" \
-l ":6666 password music_name" \
-t 10
If you run a public/shared server, do not forget this parameter --deadline 60 or -d 60
# Run as a shadowsocks server
$ brook ssserver -l :9999 -p password -t 10
# Run as multiple shadowsocks servers
$ brook ssservers \
-l ":9999 password" \
-l ":8888 password" \
-t 10
Fixed method is aes-256-cfb
If you run a public/shared server, do not forget this parameter --deadline 60 or -d 60
With nohup
# Start
$ nohup brook bkserver -l :9999 -p password -t 10 &
# Stop
$ killall brook
With systemd
If your linux run with systemd, like Ubuntu 16.04, Archlinux, etc:
# Install
$ curl -L git.io/getbrook | sudo bash
$ sudo systemctl daemon-reload
# Config command options
$ sudo vim /etc/default/brook
# Start
$ sudo systemctl start brook.service
# Stop
$ sudo systemctl stop brook.service
# Start on bootup
$ sudo systemctl enable brook.service
What is Relay Server
client <---> relay server <---> server
Relay Server
# Run as a relay server
$ brook relay -l :9999 -s server_address:port -t 10
# Run as multiple relay servers
$ brook relays \
-l ":9999 server1_address:port" \
-l ":8888 server2_address:port" \
-t 10
# Run as brook client, start a socks5 proxy
$ brook bkclient -l 127.0.0.1:1080 -s server_address:port -p password
# Run as brook client, start a http(s) proxy
$ brook bkclient -l 127.0.0.1:8080 -s server_address:port -p password --http
# Run as brook client with music, music must be same as server's
$ brook bkclient -l 127.0.0.1:1080 -s server_address:port -p password -m muisc_name
# Run as shadowsocks client, start a socks5 proxy
$ brook ssclient -l 127.0.0.1:1080 -s server_address:port -p password
# Run as shadowsocks client, start a http(s) proxy
$ brook ssclient -l 127.0.0.1:8080 -s server_address:port -p password --http
$ go get github.com/txthinking/brook/cli/brook
$ brook -h
- Please create PR on
develop
branch
Licensed under The GPLv3 License