Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tonyseek/rsocks
A SOCKS 4/5 reverse proxy server
https://github.com/tonyseek/rsocks
gmail python reverse-proxy socks5
Last synced: 13 days ago
JSON representation
A SOCKS 4/5 reverse proxy server
- Host: GitHub
- URL: https://github.com/tonyseek/rsocks
- Owner: tonyseek
- License: mit
- Created: 2015-03-08T22:31:31.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-09-20T07:11:29.000Z (about 2 years ago)
- Last Synced: 2024-10-14T00:29:49.617Z (26 days ago)
- Topics: gmail, python, reverse-proxy, socks5
- Language: Python
- Homepage:
- Size: 294 KB
- Stars: 131
- Watchers: 6
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-network-stuff - **98**星
README
RSOCKS
======RSOCKS is a reverse proxy server for transferring traffic of a specific host
through a SOCKS 4/5 proxy. It is useful for using SOCKS 4/5 in applications
that don't have SOCKS proxy support.Installation
------------::
$ pip install rsocks
Or
::
$ easy_install rsocks
To upgrade to latest version, you could execute::
$ pip install -U rsocks
Resources
---------- `OS Service Templates `_
- `Configuration Snippets `_
- `Software Integration Guides `_Usage
-----First, we need to create a config file with following format::
# /path/to/rsocks.toml
[servers.foo]
proxy = "socks4://user:[email protected]:1080"
listen_host = "0.0.0.0"
listen_port = 5025
upstream_host = "smtp.example.com"
upstream_port = 25
upstream_ssl = falseThere is an example for forwarding SMTP/IMAP of Gmail through a SOCKS5 proxy
server::[servers.imap]
proxy = "socks5://localhost:1080"
listen_port = 5993
upstream_host = "imap.gmail.com"
upstream_port = 993
upstream_ssl = true[servers.smtp]
proxy = "socks5://localhost:1080"
listen_port = 5465
upstream_host = "smtp.gmail.com"
upstream_port = 465
upstream_ssl = trueNext, we start the rsocks server::
$ rsocks --config=/path/to/rsocks.toml
[14:24:44] rsocks.servers.smtp Using proxy server socks5://localhost:1080
[14:24:44] rsocks.servers.smtp Listening 127.0.0.1:5465
[14:24:44] rsocks.servers.imap Using proxy server socks5://localhost:1080
[14:24:44] rsocks.servers.imap Listening 127.0.0.1:5993
[14:24:44] rsocks.pool Prepared "smtp"
[14:24:44] rsocks.pool Prepared "imap"
[14:24:44] rsocks.servers.smtp Starting server...
[14:24:44] rsocks.servers.imap Starting server...Don't stop it now, open your application (such as Airmail in OS X) and set the
server option to local forwarding address::SMTP: 127.0.0.1:5465 without SSL
IMAP: 127.0.0.1:5993 without SSLNow the application's traffic will be forwarded through the proxy server
(``socks5://127.0.0.1:1080``).If you wish to run the rsocks server in background, please check the
`Platform Service Templates `_.
For example, OS X users can create ``com.tonyseek.rsocks.plist`` file in
``~/Library/LaunchAgents`` and load it as a service::$ nano ~/.rsocks.toml # create a config file
$ wget https://github.com/tonyseek/rsocks/blob/master/misc/platforms/osx-launchd/com.tonyseek.rsocks.plist \
-O ~/Library/LaunchAgents/com.tonyseek.rsocks.plist
$ nano ~/Library/LaunchAgents/com.tonyseek.rsocks.plist # edit the template
$ launchctl load -w ~/Library/LaunchAgents/com.tonyseek.rsocks.plistAPI Overview
------------There is an example for using API to build a server:
.. code-block:: python
import os
from rsocks.pool import ServerPool
from rsocks.server import ReverseProxyServerproxy = os.environ.get('SOCKS_PROXY', 'socks5://localhost:1080')
pool = ServerPool()with pool.new_server(
name='IMAP',
server_class=ReverseProxyServer,
upstream=('imap.gmail.com', 993),
use_ssl=True) as server:
server.set_proxy(proxy)
server.listen(('127.0.0.1', 5993))with pool.new_server(
name='SMTP',
server_class=ReverseProxyServer,
upstream=('smtp.gmail.com', 465),
use_ssl=True) as server:
server.set_proxy(proxy)
server.listen(('127.0.0.1', 5465))if __name__ == '__main__':
pool.loop()