直接从releases页面下载最新对应系统的文件即可, 依赖也跟着打包了.
带有Alice的表示是客户端, 带有Bob表示是服务端, 当前有linux, macOS, windows三个系统版本, 根据你的系统选择需要的版本下载.
如果无法访问github, 可以通过这个 jsproxy下载
安装依赖
apt update
apt install -y git build-essential qtbase5-dev libbotan-2-dev pkg-config cmake
然后使用下面的命令进行编译与安装.
git clone https://github.com/sky-bro/SocksAB.git
cd SocksAB
mkdir build
cd build
cmake ..
make # 编译
make install # 安装
也是基于socks协议拆分成两部分, 所以中间客户端(Alice)到服务端(Bob)握手过程传输的内容和socks协议基本一样, 即包含host(ip或者域名)和端口信息。
所做的无非是对客户端到服务端的通信进行加密/混淆/伪装
Socks-Alice会首先检查程序所在目录是否有Socks-Alice.ini文件(用户可以新建这个空文件, 配置便会保存到这里), 如果没有, 那么会将配置写到系统对应的位置, 如下 (参考qt doc: QSettings::setPath)
系统 | 配置路径 |
---|---|
windows | FOLDERID_RoamingAppData |
linux/macOS | $HOME/.config |
这里可以设置本地代理的ip和端口, 支持Socks5与 HTTP代理(两个端口不能冲突).
Socks5代理必须选择(HTTP代理也是依赖它)
API接口暂时没有用
在运行程序之前, 需要选择一条链路/Server, 在链路选择tab下面通过右键菜单可以添加/删除/编辑/导入/导出/选择/断开链路(一些选项需要在断开当前链路后才能选择)
添加链路:
字段说明:
Name | IP, Port | Method | Proxy IP, Port | Key |
---|---|---|---|---|
链路名 | Bob运行地址 | 加密方法 | Bob下一跳地址 | 密码 |
因为Bob端可以进一步选择是否通过Socks代理出去, 所以Alice通过指定Proxy IP与Proxy Port来进行控制, 当Proxy Port为0时表示Bob端不走Socks代理.
在选择/断开链路时会自动本地代理tab下的运行/停止.
之后点击运行即可开始运行(需确保链路选择tab下选择了某个链路).
ESC可以缩小到系统托盘.
(左右键)单击托盘图标可以看到菜单.
Socks-Bob是我们的服务端, 它是一个命令行程序, -h
查看运行参数说明:
> ./Socks-Bob -h
Usage: Socks-Bob [options]
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-i, --ip <ip> ip address of Socks-Bob
-p, --port <port> port of Socks-Bob
-k, --key <key> shared secret between Alice and Bob
-m, --method <method> encryption method
-l, --logLevel <logLevel> logLevel, level >= logLevel will be printed out
-f, --logFile <logFile> logFile path, default to stderr
- 可以使用ssh在本地快速搭建一个socks5服务器,参考利用ssh快速建一个socks5服务器用于测试
- 如`ssh -ND localhost:1083 sky@localhost`(增加`-f`参数可以在后台运行)
- Socks-Bob的下一跳可以是一个Socks代理(或者直接访问目标网站)
- 运行Socks-Bob
- 如`Socks-Bob –port 1082 –key “password” –method chacha20`
- 运行Socks-Alice, 添加链路, 如