先说结论吧,如果你要玩PT,就不要用旁路由了,如果非要用,也请设置为默认不走旁路由的模式(也许主路由DMZ+旁路转发能行但是DMZ主机太不安全了,而且作者也没试过可不可行)。
然后是主路由要选择一个好的DNS服务器,其实都大差不差,如果大家有闲心的话,可以下面一样自己整理一个自己家的DNS延迟表格,非常直观。直接cmd,然后ping+ip就行了。
公用DNS服务器
名称 | DNS 服务器 IP 地址 | 我的延迟 |
114 DNS | 114.114.114.114 114.114.115.115 | 请求超时 |
阿里 AliDNS | 223.5.5.5 223.6.6.6 | 5ms TTL=118 |
百度 BaiduDNS | 180.76.76.76 | 38ms TTL=52 |
DNSPod DNS+ | 119.29.29.29 182.254.116.116 | 32ms TTL=54 36ms TTL=52 |
CNNIC SDNS | 1.2.4.8 210.2.4.8 | 36ms TTL=54 36ms TTL=50 |
oneDNS | 117.50.11.11 117.50.22.22 | 请求超时 |
DNS 派电信/移动/铁通 | 101.226.4.6 218.30.118.6 | 37ms TTL=55 29ms TTL=56 |
DNS 派 联通 | 123.125.81.6 140.207.198.6 | 28ms TTL=50 36ms TTL=52 |
Google DNS | 8.8.8.8 8.8.4.4 | 38ms TTL=115 40ms TTL=115 |
Google IPv6 DNS | 2001:4860:4860::8888 2001:4860:4860::8844 | 传输失败 |
IBM Quad9 | 9.9.9.9 | 224ms TTL=52 |
OpenDNS(丢包) | 208.67.222.222 208.67.220.220 | 137ms TTL=53 118ms TTL=53 |
Verizon DNS(丢包) | 4.2.2.1 4.2.2.2 | 191ms TTL=54 200ms TTL=54 |
中国台湾中华电信 HiNet DNS | 168.95.192.1 168.95.1.1 | 71ms TTL=51 65ms TTL=51 |
中科大DNS | 202.141.162.123(中国电信) 202.141.176.93 (中国移动) 202.38.93.153 (教育网) | 26ms TTL=54 请求超时 48ms TTL=49 |
韩国KT DNS | 168.126.63.1 168.126.63.2 | 122ms TTL=51 120ms TTL=51 |
CloudflareDNS | 1.1.1.1 1.0.0.1 | 185ms TTL=54 175ms TTL=54 |
华为云DNS | 122.112.208.1 114.115.192.11 116.205.5.30 139.159.208.206 139.9.23.90 116.205.5.1 122.112.208.175 | 36ms TTL=48 38ms TTL=50 31ms TTL=49 43ms TTL=48 42ms TTL=48 35ms TTL=49 38ms TTL=48 |
香港宽频DNS | 203.80.96.10 203.80.96.9 | 39ms TTL=52 39ms TTL=52 |
赛门铁克诺顿DNS | 199.85.126.10 199.85.127.10 | 31ms TTL=56 33ms TTL=56 |
oracle+dynDNS | 216.146.35.35 216.146.36.36 | 请求超时 |
瑞士瑞信银行DNS | 64.6.64.6 64.6.65.6 | 126ms TTL=53 35ms TTL=56 |
最后我选了阿里的两个DNS,因为延迟低。然后你问我TTL有啥用?我直接放图——
其次是主路由实现搭梯子科学上网,我这里无脑推荐买华硕路由器,然后使用MerlinClash。这里不介绍具体方法。
在华硕路由器设置DNS(注意是在外部网路这里设置,内部网络DHCP那里也可以设置,但是请留空):
这里不推荐任何形式的DoH或者DoT,毕竟家用不用太考虑安全这方面,但是速度带来的体验几乎翻倍。
然后在MerlinClash里把清除路由器自定义DNS关掉:
这里还是推荐清除路由器DNS,然后启用DNS编辑功能,在DNS编辑功能里面如果有你ping不通的DNS,则需要选择修改。MerlinClash默认的DNS如下——
dns:
enable: true #开启DNS解析,必须开启,否则MC将无法解析
ipv6: false #默认关闭,插件开启IP6支持口,自动打开
listen: :23453 #监听端口,不懂勿动
#nameserver-policy: #指定域名使用自定义DNS解析,默认未使用
# 'www.baidu.com': 'https://223.5.5.5/dns-query'
# '+.internal.crop.com': '114.114.114'
default-nameserver: #解析非IP的dns用的dns服务器,只支持纯IP
- 223.5.5.5
- 8.8.8.8
enhanced-mode: redir-host #DNS模式
nameserver: #默认DNS服务器,支持udp/tcp/dot/doh
- https://223.5.5.5/dns-query
- tls://101.101.101.101:853
- https://doh.pub/dns-query
fallback: #回落DNS服务器,支持udp/tcp/dot/doh
- https://doh.dns.sb/dns-query
- tcp://208.67.222.222:443
- tls://dns.google
fallback-filter: #回落DNS服务器过滤
geoip: true #为真时,不匹配为geoip规则的使用fallback返回结果
ipcidr: #列表中的ip使用fallback返回解析结果
- 240.0.0.0/4
domain: #列表中的域名使用fallback返回解析结果
#NetFlix
- '+.netflix.com.edgesuite.net'
- '+.fast.com'
- '+.netflix.com'
- '+.netflix.net'
- '+.netflixdnstest0.com'
- '+.netflixdnstest1.com'
- '+.netflixdnstest2.com'
- '+.netflixdnstest3.com'
- '+.netflixdnstest4.com'
- '+.netflixdnstest5.com'
- '+.netflixdnstest6.com'
- '+.netflixdnstest7.com'
- '+.netflixdnstest8.com'
- '+.netflixdnstest9.com'
- '+.nflxext.com'
- '+.nflximg.com'
- '+.nflximg.net'
- '+.nflxso.net'
- '+.nflxvideo.net'
#Linkedin
- '+.linkedin.com'
- '+.licdn.com'
#proxy
- '+.renzhe.cloud'
可以参考说明:https://mcreadme.gitbook.io/mc/Advanced/dns
然后,重要的来了。
你要实现啥,PT流量不能走代理,但是NAS需要代理吧,你要云备份访问GoogleDrive、Dropbox之类的、还要emby刮削数据、还有自动追番动漫花园的RSS也要能访问吧。而且还要让PT网站识别你为正确的IP而不是代理IP,那么你需要
1、PT软件的流量全部不走代理
2、NAS web访问走代理,BT流量不走代理
3、电视、手机、电脑全部走代理
好,思路清晰了,web访问走代理可以只允许80和443端口,全部走和全部不走其实也很容易实现,但是有一个重要的问题,就是PT也是搭建在群晖NAS上的,如何做到PT拥有独立IP呢?
我参考了
https://www.bilibili.com/video/BV1bd4y1c7uN/
https://sleele.com/2020/03/08/%E7%BE%A4%E6%99%96%E5%88%9B%E5%BB%BA%E6%A1%A5%E6%8E%A5%E7%BD%91%E7%BB%9C-%E4%BD%BF%E5%AE%B9%E5%99%A8%E5%92%8C%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%80%E4%B8%AA%E7%BD%91%E6%AE%B5/
大概有3步吧:
sudo -i /获取root权限
ip addr
终端中输入ip addr
查看网络信息,找到你群晖ip地址所在的那行。
我的是群晖IP所在网络接口是ovs_eth0
,我估计大部分单网口的应该都是这个数值,复制这个ovs_eth0
。
sudo ip link set ovs_eth0 promisc on #开启混杂模式
docker network create -d macvlan --subnet=网段/24 --gateway=网关 -o parent=ovs_eth0 macnet #给docker容器添加一个名为macnet(可自己设置)的macvlan网络,网段比如我的就是192.168.2.0/24,(最后一位填0),网关是192.168.2.1(主路由地址)
然后是创建容器,这里推荐create,而不是run。(需要预先下载好容器镜像)
docker create --name qbittorrent-pt --network macnet --ip=192.168.2.152 linuxserver/qbittorrent #其中qbittorrent-pt是你自定义的容器名称,macnet是你刚才设置的macvlan网络名称,192.168.2.152是你给这个容器分配的固定ip地址,需要在刚才的网段内,linuxserver/qbittorrent是拉取的镜像docker的名称,必须和官方名称一模一样,如果你是需要特定版本,请先预先下载好特定版本并且修改这里的名称,比如我还拉取了一个johngong/qbittorrent:4.1.9.1的镜像。
这些地方都可以复制到最新的或者特定版本的镜像名称。
容器创建好后,我们就可以在群晖的容器管理里面修改环境、文件(夹)映射参数之类的了。
然后是PT软件设置,这里以qb为例:
端口ip请固定,并在主路由设置好对应端口转发。不开启UPNP的原因是容易端口冲突,因为我有多个qb软件,而这个UPNP功能并不是一对一,而是多对一,如果你都设置成52000附近的话非常容易冲突,我索性就关闭了。
然后在MerlinClash里将qb地址的ip设置为全不走代理。
至此就设定完成了,可以开始愉快的PT刷积分刷流量了,233