Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

#ArkC-client

ArkC is a lightweight proxy based on Python 3 and PyCrypto. It is designed to be proof to IP blocking measures.

ArkC-Client is the client-side utility. It may require NAT configuration if the client is behind a router.

##Setup and Requirement

Running ArkC-Client requires Python 3 and PyCrypto.

For Debian or Ubuntu users:

```
sudo apt-get install python3 python3-pip python3-dev python3-psutil obfs4proxy
sudo pip3 install -r requirements.txt
```

NAT configuration may be necessary to make the client receives requests from the server, so that a connection may start.

##Usage

Run

```
python3 main.py [-h] [-v|-vv] -c <Path of the config Json file, default = config.json>
```

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. Note that ssh-rsa files should not include extra blank lines because they are used for hash.

For the configuration file, you can find an example here:

```
{
"remote_control_host":"example.com",
"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]
],
"obfs_level":0
}
```

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 | 8000 |
| 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 ptclient.py and meekclient.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/>.

Metadata

Release files for arkcserver 0.2-beta4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arkcserver 0.2-beta4
File Size Uploaded
arkcserver-0.2-beta4.tar.gz 41.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for arkcserver 0.2-beta4
File Interpreter ABI Platform
arkcserver-0.2_beta4-py2.7.egg Legacy Egg format - - Details
arkcserver-0.2_beta4-py2-none-any.whl Python 2 none any Details

Total release size: 303.8 kB

Release files / arkcserver-0.2-beta4.tar.gz

Download URL arkcserver-0.2-beta4.tar.gz
Size 41.5 kB
Tags Source
SHA-256 checksum
How to use checksums
691ab0be4492a7c854de8045535542495848cbde11053f87cd6f82582dce2e4c
BLAKE2b-256 checksum
How to use checksums
48b4912946b34ede4ba7e2d037dac3102415a3a5f3accf296c9f0ac15b96816e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / arkcserver-0.2_beta4-py2.7.egg

Download URL arkcserver-0.2_beta4-py2.7.egg
Size 173.1 kB
Tags Egg
SHA-256 checksum
How to use checksums
b4a27afd985c8b7434fc7cf7857858a0b76da59a0d945168ab1dc9e1b8380b02
BLAKE2b-256 checksum
How to use checksums
1eb7f21ad6ed0ccc04cae19fb5deac7350732eb8a841f600d074fd7dba1b956f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / arkcserver-0.2_beta4-py2-none-any.whl

Download URL arkcserver-0.2_beta4-py2-none-any.whl
Size 89.2 kB
Tags Python 2
SHA-256 checksum
How to use checksums
c0bc7380a253636bad9ebd29053ab2f539d002c1d46280b6f0e6b1b107571663
BLAKE2b-256 checksum
How to use checksums
71785663e881b68ff75d518ce70667c037f8fdbaa44c856f649b84c51e9d39b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page