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