Skip to content

lexesv/brook

 
 

Repository files navigation

Brook

Build Status Go Report Card License: GPL v3 Wiki

Brook

Table of Content

What is Brook

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

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

Server

NAME:
   Brook - A Cross-Platform Proxy Software

USAGE:
   brook [global options] command [command options] [arguments...]

VERSION:
   20170909

AUTHOR:
   Cloud <cloud@txthinking.com>

COMMANDS:
     server        Run as server mode
     servers       Run as multiple servers mode
     client        Run as client mode
     ssserver      Run as shadowsocks server mode, fixed method is aes-256-cfb
     ssservers     Run as shadowsocks multiple servers mode, fixed method is aes-256-cfb
     ssclient      Run as shadowsocks 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
     socks5        Run as raw socks5 server
     socks5tohttp  Convert socks5 to http proxy
     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

Brook Server

# 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

More about Brook Music

If you run a public/shared server, do not forget this parameter --deadline 60 or -d 60

Shadowsocks Server

# 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

Run as Daemon

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

Relay Server

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

Client (CLI)

Brook Client

# 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

Shadowsocks Client

# 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

Developer

$ go get github.com/txthinking/brook/cli/brook
$ brook -h

Contributing

  • Please create PR on develop branch

License

Licensed under The GPLv3 License

About

Brook is a cross-platform(Linux/MacOS/Windows/Android/iOS) proxy software

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 86.0%
  • JavaScript 11.4%
  • HTML 2.2%
  • Shell 0.4%