##Proximac
####Overview
Proximac is an open-source alternative to Proxifier. With Proximac, users can force App to use SOCKS5 proxy. I hope more developers can join this project.
Features:
- Support multi processes.
- White list (TODO).
Note: Proximac only works on Mac OSX.
####How to build NOTE: Proximac is based on libuv. So, before compile this project, make sure libuv was successfully installed:
$ git clone https://github.com/libuv/libuv.git
$ cd libuv
$ sh autogen.sh
$ ./configure
$ make install
Then, open Xcode project file and build it.
####Usage
- Build both kext and user-space program (proximac).
- Modify the config file to set your proxy info and the names of processes to be hooked (See more details below).
- Run the following commands.
Or,
- Download Zip archive of binary files from release page.
- Extarct files.
- Run the following commands.
sudo chown -R root:wheel proximac.kext
sudo kextload proximac.kext
sudo ./proximac-cli -c config.conf
Detailed usage of proximac:
proximac
-c <config_file> Path of configuration file that is written in JSON
-d daemon mode
####Example of configuration file We use almost the same config file as shadowsocks do but add new arguments.
{
"process_name":
["Unibox", "Google Chrome", "Thunder"],
"local_port":1080,
"local_address":"127.0.0.1",
"proximac_listen_address":"127.0.0.1",
"proximac_port":8558
}
Note:
process_name
are names of processes that you want to force to use SOCKS5 proxy, which can be found in Contents/MacOS
folder inside those Apps (right click on Apps to get inside).
local_address
and local_port
is the ip address and the listen port of your SOCKS5 proxy, respectively.
leave proximac_listen_address
and proximac_port
alone because these are hardcoded in kext source.
####References This software is partly based on projects below.
- Shadowsocks-libev.
- Shadowsocks-libuv.
- libuv.
- js0n.
- tcplognke (Apple).
- drcom4mac (As my kext dev guide book)
####Contact: csujedi at icloud dot com