Metadata-Version: 1.1
Name: arkcclient
Version: 0.3.1
Summary: A lightweight proxy designed to be proof to IP blocking measures
Home-page: https://arkc.org
Author: Noah, Teba, Ddeerreekk
Author-email: noah@arkc.org
License: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
Description: ArkC-Client V0.3
        ================
        
        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.
        
        Note: ArkC 0.3 is not compatible with 0.2 or earlier versions.
        
        `(中文)快速入门教程 <https://github.com/projectarkc/arkc-client/wiki/ArkC-VPS%E7%89%88-%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%95%99%E7%A8%8B>`__
        
        What is ArkC?
        -------------
        
        ArkC enables VPS owners to share their VPS to people around them, or share online, the proxy hosted on their VPS, without worrying about IP blacklists.
        
        For a more detailed description, please visit our website and read our page `Understand ArkC <https://arkc.org/understand-arkc/>`__. 中文版本的介绍在这一页面 `ArkC的原理 <https://arkc.org/understand_arkc_zh_cn/>`__。
        
        This is what it tries to do by default:
        
        .. image:: https://arkc.org/wp-content/uploads/2016/02/ArkC.png
           :height: 300px
        
        And making it a little bit more complicated, e.g. set obfs_level to 3 or use a socks proxy:
        
        .. image:: https://arkc.org/wp-content/uploads/2016/02/ArkCProxy-1.png
           :height: 400px
        
        Note, "anonymous_proxy" can be anything you set!
        
        Setup and Requirement
        ---------------------
        
        For a probably more detailed guide: `Deployment and Installation <https://arkc.org/12-2/deployment-and-installation/>`__. 对于安装与部署的中文说明在 `部署与安装ArkC <https://arkc.org/12-2/deployment_install_zh_cn/>`__
        这一页面。
        
        For Windows users, you are recommended to use our Windows GUI, installer along with latest ArkC client binary executable, in the Github `release page <https://github.com/projectarkc/arkc-client-GUI-dotnet/releases/latest>`__. Just pick your .Net Framework version and download.
        
        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.
        
        If you need to use portable proxy function, like MEEK (required to integrate with GAE) or obfs4proxy, please follow the above link to arkc.org.
        
        Usage
        -----
        
        For detailed documentation, please visit our `Documentation page <https://arkc.org/documentation/>`__.
        
        中文版本的使用文档，请参见 `如何使用ArkC <https://arkc.org/documentation_zh_cn/>`__。
        
        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.
        
        We could generate a keypair with
        
        ::
        
            arkcclient -kg [--kg-path Key_Generated_Path]
        
        And the keys can be sent to an email address used by the server provider with this command    
        
        ::
        
            arkcclient -reg Email_Address_to_send
        
        Automatically the server should add the key to its key storage.
        
        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        | string, proxy listening addr                      | "127.0.0.1"                      |
        +--------------------+---------------------------------------------------+----------------------------------+
        | local\_port        | integer, proxy port                               | 8001                             |
        +--------------------+---------------------------------------------------+----------------------------------+
        | remote\_host       | string, 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        | string, path of client pri                        | REQUIRED                         |
        +--------------------+---------------------------------------------------+----------------------------------+
        | local\_cert\_pub   | string, path of client pub                        | REQUIRED                         |
        +--------------------+---------------------------------------------------+----------------------------------+
        | remote\_cert       | string, path of server pub                        | REQUIRED                         |
        +--------------------+---------------------------------------------------+----------------------------------+
        | control\_domain    | string, standard domain                           | REQUIRED                         |
        +--------------------+---------------------------------------------------+----------------------------------+
        | dns\_servers       | list, servers to send dns query to                | [] (use system resolver)         |
        +--------------------+---------------------------------------------------+----------------------------------+
        | debug\_ip          | string, address of the client (only for debug use)| None                             |
        +--------------------+---------------------------------------------------+----------------------------------+
        | pt\_exec           | string, 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 into executable
        --------------------------------
        
        ::
        
            pip install pyinstaller
            pyinstaller [--onefile] main.py
        
        Questions | 使用或安装时遇到问题
        ----------------------------------------------
        
        Go to our `FAQ page <https://arkc.org/faq/>`__.
        
        常见问题请参考 `FAQ <https://arkc.org/faq_zh_cn/>`__。
        
        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/.
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet :: Proxy Servers
