type
status
date
slug
summary
tags
category
icon
password
基本思想就是想方法隐藏p2p下载的真实ip,可以通过自建VPN隧道,或者使用socks5给p2p的下载软件添加代理
OpenVPN
使用这种方式相当于在VPN的服务器新建了一个虚拟子网,然后把NAS通过VPN隧道挂在了这个子网下面,因此通过这种方式所有NAS的流量都会经过VPN服务器,并且原有的路由器下的端口转发也会失效
安装openvpn server
需要一台vps主机并在主机上安装openvpn server
一键安装脚本
•
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
下载生成的.opvn文件
连接openvpn
在群晖网络设置中添加openvpn

注意添加的时候需要勾选使用远程网关

这个时候群晖的默认网关就会变成10.8.0.1,注意如果默认网关为192.168.x.x就需要在路由器上进行端口转发,否则无法通过外网进行访问
在vps上添加端口转发
因为默认网关变了,也就无法实现端口映射,这个时候相当于把群晖挂载到了vps的子网下面,子网的网关是10.8.0.1。
也就是说这个时候vps相当于是一个新的路由器,需要在vps重新进行端口转发才能够通过外网访问群晖的内部服务,比如valutwarden,donwload center等
iptables相当于是一个管理网络数据包规则工具,一共有4个表使用-t指定,端口映射应该更改nat(network address table)表
iptables可以对5个链路进行规则的控制,每个链路可以设置不同的表,相同功能的会放到同一个表中,防火墙相关的规则会放到filter表中,转发相关的会放到nat表中
添加端口转发的命令
iptables -t nat -A PREROUTING -p tcp --dport <port> -j DNAT --to-destination 10.8.0.2:<port>
其中
10.8.0.2
是群晖的ip地址-t table -A append -p port -j jump(就是规则匹配成功之后的action)
iptables -t nat -L --line-number
列出表的所有规则和行号iptables -t nat -D PREROUTING 2
根据行号删除规则添加完规则之后使用iptables-save保存
在vps添加完端口转发之后,只要在家里的Wi-Fi路由器中设置将相应的群晖服务端口转发(路由器端口 → 群晖端口)就能正常通过外网访问服务了
所有都配置成功之后在使用download center下载文件的时候就会用vps的ip,先走vps的流量然后通过openvpn隧道传到群晖上。
验证
python speedtest脚本
输出的IP Address应该是VPN server的
qbittorrent客户端绑定网卡
在qbittorrent中的Network interface选项中选择open vpn连接的网卡,这个时候如果vpn断了qbittorrent也不会有速度

MacOS可以在OpenVPN的客户端找到使用的哪一个虚拟网卡

Socks5代理
Socks5代理与VPN不同,属于应用级别,换句话说他比VPN的粒度更细,可以用在application级别,而VPN是代理全局。
搭建Shadowsocks服务器
Shadowsocks本质是一种自定义的协议,将原始的流量包进行了加密之后重新组装发送出去,因此与socks5并无直接关系。socks5是一种通用的代理协议
Shadowsocks的ss-server和ss-local其实都是服务器,只不过ss-local是监听本地的socks5端口,流量先经过本地socks5代理传到ss-local,ss-local进行加密之后发送给ss-server,ss-server进行解密
服务器安装ss-server
shadowsocks-libev
shadowsocks-rust
NAS安装ss-local
登录到NAS shell通过docker启动容器
shadowsocks-libev
shadowsocks-rust
ss-local的配置文件
NAS安装qbittorrent
在docker中下载镜像

添加两个文件夹,一个用于存放config另一个用于存放下载文件

启动docker image
注意要添加三个端口映射

PUID和PGID是用来给qbittorrent下载权限的,可以登录nas 命令行使用
id
命令查看。如果不添加会导致Error容器启动后需要进入log查看随机生成的密码
进入到web ui之后在connection设置中添加本地socks5代理
注意在代理下面的几个选项中最重要的就是
use proxy for peer connection
只有勾选了这个选项,流量才会真正的经过代理。
这个时候只要NAS上的ss-local和VPS上的ss-server都正常启动,下载流量就应该会通过代理了
验证
进入VPS的用户界面查看流量确实经过了代理服务器

更新
经过实验使用第二种方法依然会被检测到,因为如果在qbittorrent中开启了使用代理进行peer connection的选项之后就无法通过socks5代理和磁力链接下载到torrent种子文件,只能在文件已经开始下载之后再开启,然而下载过程中开启是没用的,ip还是会被检测到