Skip to main content

一个 SOCKS 反向代理服务器。

项目描述

RSOCKS 是一个反向代理服务器,用于通过 SOCKS 4/5 代理传输特定主机的流量。在不支持 SOCKS 代理的应用程序中使用 SOCKS 4/5 很有用。

安装

$ pip install rsocks

或者

$ easy_install rsocks

要升级到最新版本,您可以执行:

$ pip install -U rsocks

资源

用法

首先,我们需要创建一个具有以下格式的配置文件:

# /path/to/rsocks.toml
[servers.foo]
proxy = "socks4://user:pass@192.168.1.10:1080"
listen_host = "0.0.0.0"
listen_port = 5025
upstream_host = "smtp.example.com"
upstream_port = 25
upstream_ssl = false

有一个通过 SOCKS5 代理服务器转发 Gmail 的 SMTP/IMAP 的示例:

[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 = true

接下来,我们启动 rsocks 服务器:

$ 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...

现在不要停止它,打开您的应用程序(例如 OS X 中的 Airmail)并将服务器选项设置为本地转发地址:

SMTP: 127.0.0.1:5465 without SSL
IMAP: 127.0.0.1:5993 without SSL

现在应用程序的流量将通过代理服务器(socks5://127.0.0.1:1080)转发。

如果您希望在后台运行 rsocks 服务器,请检查 平台服务模板。例如,OS X 用户可以在~/Library/LaunchAgents中创建com.tonyseek.rsocks.plist文件 并将其作为服务加载:

$ 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.plist

API 概述

有一个使用 API 构建服务器的示例:

import os

from rsocks.pool import ServerPool
from rsocks.server import ReverseProxyServer

proxy = 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()

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

rsocks-0.4.0.tar.gz (6.8 kB 查看哈希

已上传 source

内置分布

rsocks-0.4.0-py2.py3-none-any.whl (7.9 kB 查看哈希

已上传 py2 py3