这不是一个问题,而是确认我所做的是对还是不对,是否安全。 到目前为止,我发现谷歌搜索的是你不能通过代理运行rtorrent。您可以通过代理或tsocks来放置http请求,在这两种情况下,实际传输都是直接完成或根本不完成。因此,到目前为止,唯一提出的可行解决方案是我想要避免的VPN。
我所做的是为http部分使用http代理,为实际下载部分使用端口转发。例如,我们假设以下内容:
步骤:
我创建了2个ssh隧道
ssh -N -D 9090 user@remote.machine.com
ssh -R 9091:localhost:9091 user@remote.machine.com
从本地计算机上我安装了polipo作为html代理,并将其配置为在remote.machine.com中使用socks代理。 我在 / etc / polipo / config 中编辑了以下行,以便我可以获取socks代理。
socksParentProxy =“localhost:9090”
socksProxyType = socks5
proxyPort = 9080
在本地机器上,我更改了〜/ .rtorrent.rc ,如下所示:
http请求#Proxy通过polipo
HTTP_PROXY =本地主机:9080
#向跟踪器报告的IP地址。
#Really important,为了获得下载连接
ip = remote.machine.com
#侦听套接字和传出连接的IP地址为
#bound to。
bind = 192.168.1.10
#用于收听的端口范围。
port_range = 9091-9091
#开始在端口范围内的随机位置打开端口。
port_random = no
系统似乎有效。我连接到跟踪器,我有上下交通。所以问题是:
答案 0 :(得分:1)
据我所知,您已经覆盖了入站连接以及传出的HTTP流量,但是任何出站点对点连接都将直接创建,而不是通过任何隧道创建。目前,rtorrent似乎不支持通过任何类型的隧道或代理传递出站P2P连接,因此为了处理这些,您需要一些其他机制。
你提到了tsocks并且它不起作用 - 除了你在上面设置的rtorrent配置之外还没有? (虽然使用tsocks,您应该能够删除HTTP代理部分。)
如果失败,tsocks project page上提到了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