跳转到主要内容

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 查看哈希值)

上传时间 源代码

构建分发

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

上传时间 Python 2 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面