Yet another cross platform ss/trojan GUI client.
Currently support MacOS(10.10 or up) and Windows(vista or up), Linux support is on plan.
For windows, Climber run as portable mode by default. (Will write files in executable directory)
Sometimes you don’t want the portable mode, for example when you install Climber to C:\Program Files (x86)\
You can create a file named disable_portable
in executable directory to disable portable mode. (Will write files in local user data directory)
This project was developed under CLion, easy to build using cmake.
Requirement:
- homebrew https://brew.sh/
- command line tools
xcode-select --install
- cmake
brew install cmake
Build:
git clone --recurse-submodules https://github.com/Climber7/Climber
cd Climber
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
make create_zip
Requirement:
- Visual Studio or Visual Studio Build Tools
- cmake
Build:
git clone --recurse-submodules https://github.com/Climber7/Climber
cd Climber
md build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" ..
nmake # or ..\tools\win32\jom -j8
nmake create_zip
Click Open Config Directory
and create a file named servers.json
[
{
"name": "ss-sample",
"type": "shadowsocks",
"data": {
"server": "1.1.1.1",
"server_port": 8888,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "xxxxxx",
"timeout": 300,
"method": "xchacha20-ietf-poly1305",
"fast_open": false
}
},
{
"name": "tj-sample",
"type": "trojan",
"data": {
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "xxx.com",
"remote_port": 443,
"password": [
"xxxxxx"
],
"log_level": 1,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "",
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
"sni": "",
"alpn": [
"h2",
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"curves": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"reuse_port": false,
"fast_open": false,
"fast_open_qlen": 20
}
}
}
]
Note: Local address and port will be override by Climber, so you can let these empty or delete these key. You can set these values in preferences.
- wxWidgets For cross platform GUI.
- json For json serialization/deserialization.
- shadowsocks-libev For shadowsocks support.
- shadowsocks-libev-win Windows builds for shadowsocks-libev.
- trojan-go For trojan support.
- privoxy For converting socks5 proxy to http.
- sysproxy For system proxy setting on Windows.
- cpp-httplib For http client/server.
And thanks to many other great open source project!
Q: Why not make a GUI for configuring servers?
A: I like config file, it's perfect for me. In fact, I'm lazy.
This project is just for research and education purpose, using it requires you to ensure compliance with local laws. Otherwise you are not allow to use it, and should uninstall it immediately.
Any violation of the law by anyone using this software has nothing to do with the author.