A lightweight proxy designed to be proof to IP blocking measures
Project description
ArkC is a lightweight proxy designed to be proof to IP blocking measures and offer high proxy speed via multi-connection transmission and swapping connections.
ArkC-Client is the client-side utility. In a LAN environment, it either works with UPnP-enabled routers or requires NAT configuration if the client is behind a router.
Setup and Requirement
For Windows users, please use our Windows executable in release page.
For users with python3 pip development environment (Note: We don’t recommend using python 2):
sudo pip3 install arkcclient
To install python3 and pip3 with python.h:
Debian/Ubuntu users
sudo apt-get install python3 python3-pip python3-dev
Fedora users
yum install python3 python3-devel python3-pip
You may also install ArkC via source.
To get ArkC Client work, you must satisfy ONE OF the following conditions (unless you are the expert): 1) connect to public Internet directly 2) connect to the Internet via a UPnP-enabled router, in a single-layer LAN 3) router(s) on your route to the public Internet are properly configured with NAT to allow your server to connect to your client’s “remote_port” directly
Usage
Run
arkcclient [-h] [-v|-vv] [-pn] -c <Path of the config Json file>
[-pn] is used to disable UPnP.
In this version, any private certificate should be in the form of PEM without encryption, while any public certificate should be in the form of ssh-rsa. Generate a key pair with ssh-keygen on GNU/Linux.
For the configuration file, you can find an example here:
{ "local_cert":"client.pem", "remote_cert":"server.pub", "local_cert_pub":"client.pub", "control_domain":"testing.arkc.org", "dns_servers": [ ["8.8.8.8", 53], ["127.0.0.1", 9000] ] }
NOTE: NO COMMENTS ARE ALLOWED IN JSON FORMAT.
For a full list of settings:
Index name |
Value Type & Description |
Required / Default |
---|---|---|
local_host |
str, proxy listening addr |
“127.0.0.1” |
local_port |
integer, proxy port |
8001 |
remote_host |
str, listening host |
“0.0.0.0” |
remote_port |
integer, listening port |
random between 20000 and 60000 |
number |
integer, how many conn. (max. 100) |
3 |
local_cert |
str, path of client pri |
REQUIRED |
local_cert_pub |
str, path of client pub |
REQUIRED |
remote_cert |
str, path of server pub |
REQUIRED |
control_domain |
str, standard domain |
REQUIRED |
dns_server |
list, servers to send dns query to |
[] (use system resolver) |
debug_ip |
str, address of the client (only for debug use) |
None |
pt_exec |
str, command line of PT executable |
“obfs4proxy” |
obfs_level |
integer, obfs leve 0~3, the same as server side |
0 |
Note: if obfs_level is set, pt_exec must be appropriate set. It is set to use obfs4 or MEEK, both Tor pluggable transport (abbr: PT). MEEK is like GoAgent, and obfs4 is used to obfuscate all the traffic.
If set to 1 or 2, Obfs4 will use an IAT mode of (obfs_level + 1), which means if obfs_level is set to 1 or 2, the connection speed may be affected.
If obfs_level is set to 3, MEEK will be used to transmit all data via a pre-configured MEEK service at the server side. By default it passes through Google App Engine.
Build on Windows
pip install pyinstaller pyinstaller [--onefile] main.py
Acknowledgements
The client-end software adapted part of the pyotp library created by Mark Percival m@mdp.im. His code is reused under Python Port copyright, license attached.
File arkcclient/ptclient.py is based on ptproxy by Dingyuan Wang. Code reused and edited under MIT license, attached in file.
License
Copyright 2015 ArkC Technology.
The ArkC-client and ArkC-server utilities are licensed under GNU GPLv2. You should obtain a copy of the license with the software.
ArkC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
ArkC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ArkC. If not, see http://www.gnu.org/licenses/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for arkcclient-0.2.0.post3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12157ae7b633946b5dd42f15dde093fe870ef9b80601eb30d7fe716f7e12b6a2 |
|
MD5 | bc2bee1f870b1765033915ab3be2066a |
|
BLAKE2b-256 | 3004d5cb3d50997c1e77577c0c27075ea76c444f047686025a7e06e660135ed8 |