{ "info": { "author": "Jiangge Zhang", "author_email": "tonyseek@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "RSOCKS\n======\n\nRSOCKS is a reverse proxy server for transferring traffic of a specific host\nthrough a SOCKS 4/5 proxy. It is useful for using SOCKS 4/5 in applications\nthat don't have SOCKS proxy support.\n\n\nInstallation\n------------\n\n::\n\n $ pip install rsocks\n\nOr\n\n::\n\n $ easy_install rsocks\n\n\nTo upgrade to latest version, you could execute::\n\n $ pip install -U rsocks\n\n\nResources\n---------\n\n- `OS Service Templates `_\n- `Configuration Snippets `_\n- `Software Integration Guides `_\n\n\nUsage\n-----\n\nFirst, we need to create a config file with following format::\n\n # /path/to/rsocks.toml\n [servers.foo]\n proxy = \"socks4://user:pass@192.168.1.10:1080\"\n listen_host = 0.0.0.0\n listen_port = 5025\n upstream_host = \"smtp.example.com\"\n upstream_port = 25\n upstream_ssl = false\n\nThere is an example for forwarding SMTP/IMAP of Gmail through a SOCKS5 proxy\nserver::\n\n [servers.imap]\n proxy = \"socks5://localhost:1080\"\n listen_port = 5993\n upstream_host = \"imap.gmail.com\"\n upstream_port = 993\n upstream_ssl = true\n\n [servers.smtp]\n proxy = \"socks5://localhost:1080\"\n listen_port = 5465\n upstream_host = \"smtp.gmail.com\"\n upstream_port = 465\n upstream_ssl = true\n\nNext, we start the rsocks server::\n\n $ rsocks --config=/path/to/rsocks.toml\n [14:24:44] rsocks.servers.smtp Using proxy server socks5://localhost:1080\n [14:24:44] rsocks.servers.smtp Listening 127.0.0.1:5465\n [14:24:44] rsocks.servers.imap Using proxy server socks5://localhost:1080\n [14:24:44] rsocks.servers.imap Listening 127.0.0.1:5993\n [14:24:44] rsocks.pool Prepared \"smtp\"\n [14:24:44] rsocks.pool Prepared \"imap\"\n [14:24:44] rsocks.servers.smtp Starting server...\n [14:24:44] rsocks.servers.imap Starting server...\n\nDon't stop it now, open your application (such as Airmail in OS X) and set the\nserver option to local forwarding address::\n\n SMTP: 127.0.0.1:5465 without SSL\n IMAP: 127.0.0.1:5993 without SSL\n\nNow the application's traffic will be forwarded through the proxy server\n(``socks5://127.0.0.1:1080``).\n\nIf you wish to run the rsocks server in background, please check the\n`Platform Service Templates `_.\nFor example, OS X users can create ``com.tonyseek.rsocks.plist`` file in\n``~/Library/LaunchAgents`` and load it as a service::\n\n $ nano ~/.rsocks.toml # create a config file\n $ wget https://github.com/tonyseek/rsocks/blob/master/misc/platforms/osx-launchd/com.tonyseek.rsocks.plist \\\n -O ~/Library/LaunchAgents/com.tonyseek.rsocks.plist\n $ nano ~/Library/LaunchAgents/com.tonyseek.rsocks.plist # edit the template\n $ launchctl load -w ~/Library/LaunchAgents/com.tonyseek.rsocks.plist\n\n\nAPI Overview\n------------\n\nThere is an example for using API to build a server:\n\n.. code-block:: python\n\n import os\n\n from rsocks.pool import ServerPool\n from rsocks.server import ReverseProxyServer\n\n proxy = os.environ.get('SOCKS_PROXY', 'socks5://localhost:1080')\n pool = ServerPool()\n\n with pool.new_server(\n name='IMAP',\n server_class=ReverseProxyServer,\n upstream=('imap.gmail.com', 993),\n use_ssl=True) as server:\n server.set_proxy(proxy)\n server.listen(('127.0.0.1', 5993))\n\n with pool.new_server(\n name='SMTP',\n server_class=ReverseProxyServer,\n upstream=('smtp.gmail.com', 465),\n use_ssl=True) as server:\n server.set_proxy(proxy)\n server.listen(('127.0.0.1', 5465))\n\n if __name__ == '__main__':\n pool.loop()", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tonyseek/rsocks", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rsocks", "package_url": "https://pypi.org/project/rsocks/", "platform": "Any", "project_url": "https://pypi.org/project/rsocks/", "project_urls": { "Homepage": "https://github.com/tonyseek/rsocks" }, "release_url": "https://pypi.org/project/rsocks/0.3.3/", "requires_dist": [ "PySocks (>=1.5)", "eventlet (>=0.17)", "click (>=3.3)", "toml.py (>=0.1)", "six" ], "requires_python": "", "summary": "A SOCKS reverse proxy server.", "version": "0.3.3" }, "last_serial": 1775900, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b0e7cac4d3ce7e01109efca8d7611355", "sha256": "9ce6d1db3507de2995efad3f17cd2f261921ebf8981d7fccb82556118b3bed48" }, "downloads": -1, "filename": "rsocks-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b0e7cac4d3ce7e01109efca8d7611355", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8128, "upload_time": "2015-03-09T07:52:48", "url": "https://files.pythonhosted.org/packages/c1/1b/4a50dc76de4564501e28d1e668e97ab10e4f912e5204da65ff8915015c6f/rsocks-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "096a69b21f58fdff85bdf9144cc41b2c", "sha256": "51a3b51ef5fb1c6dd8c99ece448f501a3617582a4bc26c77daec39bcea386172" }, "downloads": -1, "filename": "rsocks-0.1.0.tar.gz", "has_sig": false, "md5_digest": "096a69b21f58fdff85bdf9144cc41b2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4974, "upload_time": "2015-03-09T07:52:53", "url": "https://files.pythonhosted.org/packages/ca/3f/4878c0f9d9def6bc37b1f0f6820280cba3d203fb29d8facad088a3de3cbe/rsocks-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1c4b88a0e7f38539f72cf22365371e9d", "sha256": "56c68c1cc67fb1f9c18bb8ec2e6e7f8eecf0e0d8a498933be8d35d6a277dffd1" }, "downloads": -1, "filename": "rsocks-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c4b88a0e7f38539f72cf22365371e9d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8707, "upload_time": "2015-03-24T06:41:34", "url": "https://files.pythonhosted.org/packages/79/5e/48d2af43f5272074884c1ca001c9899fb534cee373a62a5303626dc928c2/rsocks-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33ca80bf32019768377448aa6e8c2e04", "sha256": "38b0cfff1594164fdeacad3904b34bc840aae8a6de04c21f0ac8e634458b860d" }, "downloads": -1, "filename": "rsocks-0.2.0.tar.gz", "has_sig": false, "md5_digest": "33ca80bf32019768377448aa6e8c2e04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5331, "upload_time": "2015-03-24T06:41:37", "url": "https://files.pythonhosted.org/packages/05/75/df20e8f12475c9bb090f496bb7d578ee0521695273d50770c4cf2b6bd020/rsocks-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "888a55c6f45cc1b4e04c7f0f47fa0e0e", "sha256": "a2230e8dc55baa2b9a4e35d599b5bd6f3e9dbd2cd7357897c8647e0f21f028f7" }, "downloads": -1, "filename": "rsocks-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "888a55c6f45cc1b4e04c7f0f47fa0e0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8733, "upload_time": "2015-03-25T15:41:46", "url": "https://files.pythonhosted.org/packages/f9/fd/6dbce293065942d3bb77efb8b31c5112943a35b647f4b741ab7138806a17/rsocks-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e403c53bacd848cb75a4e6256299410", "sha256": "da42a3fe349f2e438a10d91dfffbe7685a7d2a022cdfb2c8b02ba96b11afc3d5" }, "downloads": -1, "filename": "rsocks-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0e403c53bacd848cb75a4e6256299410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5346, "upload_time": "2015-03-25T15:41:51", "url": "https://files.pythonhosted.org/packages/39/e6/baf484734988971e1fa2b2495dd9b5ceff6596e6a62c7e399c6761e03272/rsocks-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1b2e55270b5c9b67bc2a30d72aa489a0", "sha256": "b9d4b1d357b9cbf2b5a13ea2382a97f5e024e9cccb976bdc1351313263987455" }, "downloads": -1, "filename": "rsocks-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b2e55270b5c9b67bc2a30d72aa489a0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8793, "upload_time": "2015-03-30T03:08:52", "url": "https://files.pythonhosted.org/packages/9f/a7/c1e2e10e96c267b53a5fca4f6411e6ad0d011847820dd1508c82f69215d5/rsocks-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8262dcf2110cefce78abb6f91e526a40", "sha256": "dfccdb5eb6f944c70f1239fe0cdfe389294df136eb5da7a3c42b00259c337797" }, "downloads": -1, "filename": "rsocks-0.2.2.tar.gz", "has_sig": false, "md5_digest": "8262dcf2110cefce78abb6f91e526a40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5400, "upload_time": "2015-03-30T03:08:56", "url": "https://files.pythonhosted.org/packages/18/d9/41b582071499da0195864ab85b4bda61af9a1dfd873b32986c6eca753807/rsocks-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "e976b8a39283ce32d6b20c795f09bf51", "sha256": "4b8781e33f81480f93917d61917c5a0b2f511abe0706481a246501f0a2afce3c" }, "downloads": -1, "filename": "rsocks-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e976b8a39283ce32d6b20c795f09bf51", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9148, "upload_time": "2015-03-31T05:16:04", "url": "https://files.pythonhosted.org/packages/69/c6/1390cc09793d5ce2aa98c7a929dbfd712e9060f3ae1f575a487c495ee8ff/rsocks-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4610fa94f6ccaf73667a0bb7925b1d33", "sha256": "e682e1c62142e69bde72771e0d39ff69a66c19a22d5ade11e33fdcab8ab32af2" }, "downloads": -1, "filename": "rsocks-0.2.3.tar.gz", "has_sig": false, "md5_digest": "4610fa94f6ccaf73667a0bb7925b1d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5791, "upload_time": "2015-03-31T05:16:07", "url": "https://files.pythonhosted.org/packages/10/81/57272b03070742543aa6247b5918b73d749e7008f0b5d162b5f07cd84628/rsocks-0.2.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "07c6514c857c4ad30b093e46a37d7d99", "sha256": "84141a4dba6b13e0f6b82f52b10705bee0afc9fb8333db27f4eb7c05a0b37aff" }, "downloads": -1, "filename": "rsocks-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "07c6514c857c4ad30b093e46a37d7d99", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9686, "upload_time": "2015-05-21T07:20:43", "url": "https://files.pythonhosted.org/packages/ed/73/18d8b15fd22a4afd97d734efd1ddee61e8ec8c195de73e69d78e35fd82e4/rsocks-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a3fb2835cc9473e5029c68f25c40634", "sha256": "bd16cc27b2bd06b2338d9d61b7e602cabcb3b482551add02e9ad5bc605853418" }, "downloads": -1, "filename": "rsocks-0.3.1.tar.gz", "has_sig": false, "md5_digest": "1a3fb2835cc9473e5029c68f25c40634", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5746, "upload_time": "2015-05-21T07:20:47", "url": "https://files.pythonhosted.org/packages/b9/3e/25d9ad23a5d3971cd4364f02ed1fd8b69dbf3c37ce4ae87f485ced4333ef/rsocks-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "a37b8e6992e543ed7ce39fb95d1c6418", "sha256": "f03c8a98634bf5a9ab125b4f1d99760220c0040deaccd609f0f2d79d716ba0e4" }, "downloads": -1, "filename": "rsocks-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a37b8e6992e543ed7ce39fb95d1c6418", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9698, "upload_time": "2015-05-22T06:04:59", "url": "https://files.pythonhosted.org/packages/08/9a/f6ed19e9bb0d3d98b5537210fbac92b212939dde42c3ae06c0ac3793cbc2/rsocks-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db3a94e3dfae09cc98fac927ed612bd3", "sha256": "182e42811fc3476257bce70ce708ed97badc3404ba476df1a06fa77210a14519" }, "downloads": -1, "filename": "rsocks-0.3.2.tar.gz", "has_sig": false, "md5_digest": "db3a94e3dfae09cc98fac927ed612bd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5770, "upload_time": "2015-05-22T06:05:10", "url": "https://files.pythonhosted.org/packages/17/0a/468f4f4038f26834caef8052a86ed16d265bab6ca6a715711ff78b5ddc21/rsocks-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "74c50dbf5623b92e7f66727969dc7cb5", "sha256": "b12b52fced352f97fb81dc81f8daa9d153ef793d3e7bdb45ec30dd048e84d95f" }, "downloads": -1, "filename": "rsocks-0.3.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "74c50dbf5623b92e7f66727969dc7cb5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9918, "upload_time": "2015-10-19T10:59:55", "url": "https://files.pythonhosted.org/packages/07/99/91fcb8fa6ca453aae99a5bcb4e4444ab1859e862125779dd9752824a73f0/rsocks-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "180e8bf0f63800062e122a4050a758ae", "sha256": "2a32cb1fb10946297877011cf10f26918b3f8c1545b724a2e8fab335d8ed2c77" }, "downloads": -1, "filename": "rsocks-0.3.3.tar.gz", "has_sig": true, "md5_digest": "180e8bf0f63800062e122a4050a758ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5820, "upload_time": "2015-10-19T11:00:13", "url": "https://files.pythonhosted.org/packages/91/6b/3d296249d117c750833bdbd8584aa3546c0b9c3f7c23f5a0076bb3989229/rsocks-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "74c50dbf5623b92e7f66727969dc7cb5", "sha256": "b12b52fced352f97fb81dc81f8daa9d153ef793d3e7bdb45ec30dd048e84d95f" }, "downloads": -1, "filename": "rsocks-0.3.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "74c50dbf5623b92e7f66727969dc7cb5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9918, "upload_time": "2015-10-19T10:59:55", "url": "https://files.pythonhosted.org/packages/07/99/91fcb8fa6ca453aae99a5bcb4e4444ab1859e862125779dd9752824a73f0/rsocks-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "180e8bf0f63800062e122a4050a758ae", "sha256": "2a32cb1fb10946297877011cf10f26918b3f8c1545b724a2e8fab335d8ed2c77" }, "downloads": -1, "filename": "rsocks-0.3.3.tar.gz", "has_sig": true, "md5_digest": "180e8bf0f63800062e122a4050a758ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5820, "upload_time": "2015-10-19T11:00:13", "url": "https://files.pythonhosted.org/packages/91/6b/3d296249d117c750833bdbd8584aa3546c0b9c3f7c23f5a0076bb3989229/rsocks-0.3.3.tar.gz" } ] }