1

这不是一个太大的问题,而是确认我所做的事情是否正确以及它是否安全。到目前为止,我发现谷歌搜索是您无法通过代理运行 rtorrent。您可以通过代理或 tsocks 发送 http 请求,在这两种情况下,实际传输要么直接完成,要么根本不完成。因此,到目前为止,唯一提出的可行解决方案是我想避免的 VPN。

我所做的是对 http 部分使用 http 代理,对实际下载部分使用端口转发。例如,让我们假设以下内容:

  • 192.168.1.10 --> 带有实际 rtorrent 的本地机器
  • remote.machine.com --> 用作代理的远程机器

程序:

  1. 我创建了 2 个 ssh 隧道

    ssh -N -D 9090 user@remote.machine.com

    ssh -R 9091:localhost:9091 user@remote.machine.com

  2. 我在本地机器上安装了 polipo 作为 html 代理,并将其配置为使用 remote.machine.com 中的 socks 代理。我在/etc/polipo/config中编辑了以下几行, 以便获得 socks 代理。

    socksParentProxy =“本地主机:9090”

    socksProxyType = socks5

  3. 我还在/etc/polipo/config中更改了 html 代理端口以增加安全性

    代理端口 = 9080

  4. 在本地机器上,我将~/.rtorrent.rc更改如下:

    #通过polipo代理http请求

    http_proxy=localhost:9080

    # 上报给tracker的ip地址。

    #真的很重要,为了获得下载连接

    ip = remote.machine.com

    # 监听套接字和传出连接的IP地址是

    # 势必。

    绑定 = 192.168.1.10

    # 用于监听的端口范围。

    端口范围 = 9091-9091

    # 从端口范围内的任意位置开始开放端口。

    port_random = 否

该系统似乎工作。我连接到跟踪器,我有上下流量。所以问题是:

  • 关于 rtorrent 的所有流量都通过 remote.machine.com 完成,我是否安全?
  • 我错过了什么?
  • 这种方法有什么问题或顾虑吗?
4

1 回答 1

1

据我所知,您已经介绍了入站连接以及出站 HTTP 流量,但是任何出站对等连接都将直接创建,而不是通过任何隧道。目前,rtorrent 似乎不支持通过任何类型的隧道或代理传递出站 P2P 连接,因此为了处理这些,您需要一些其他机制。

您提到了 tsocks 并且它不起作用 - 甚至除了您在上面设置的 rtorrent 配置之外也不行?(尽管使用 tsocks 您应该能够删除 HTTP 代理部分。)

如果失败,可以在tsocks 项目页面上提到 tsocks 的替代品。一个稍微复杂的替代方法是创建一个新的环回接口(lo:1,IP 为 127.0.0.2),将您的 rtorrent 绑定到该接口,并使用sshuttle 之类的东西通过 SSH 隧道引导源自该接口的所有流量。不幸的是,sshuttle 目前不允许您将其操作限制在特定接口,因此您必须修改它创建的 iptables 规则以使其符合您的需求。我认为将欢迎添加此功能到 sshuttle 的补丁。

附带说明一下,您可以在单个 SSH 连接中创建多个端口转发和 SOCKS 代理,如下所示:

ssh -N -D 9090 -R 0.0.0.0:9091:localhost:9091 myself@my.example.com
于 2015-01-21T22:43:42.273 回答