先说结论吧,如果你要玩PT,就不要用旁路由了,如果非要用,也请设置为默认不走旁路由的模式(也许主路由DMZ+旁路转发能行但是DMZ主机太不安全了,而且作者也没试过可不可行)。

然后是主路由要选择一个好的DNS服务器,其实都大差不差,如果大家有闲心的话,可以下面一样自己整理一个自己家的DNS延迟表格,非常直观。直接cmd,然后ping+ip就行了。

公用DNS服务器

名称DNS 服务器 IP 地址我的延迟
114 DNS114.114.114.114
114.114.115.115
请求超时
阿里 AliDNS223.5.5.5
223.6.6.6
5ms TTL=118
百度 BaiduDNS180.76.76.7638ms TTL=52
DNSPod DNS+119.29.29.29
182.254.116.116
32ms TTL=54
36ms TTL=52
CNNIC SDNS1.2.4.8
210.2.4.8
36ms TTL=54
36ms TTL=50
oneDNS117.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 DNS8.8.8.8
8.8.4.4
38ms TTL=115
40ms TTL=115
Google IPv6 DNS2001:4860:4860::8888
2001:4860:4860::8844
传输失败
IBM Quad99.9.9.9224ms 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 DNS168.95.192.1
168.95.1.1
71ms TTL=51
65ms TTL=51
中科大DNS202.141.162.123(中国电信)
202.141.176.93 (中国移动)
202.38.93.153 (教育网)
26ms TTL=54
请求超时
48ms TTL=49
韩国KT DNS168.126.63.1
168.126.63.2
122ms TTL=51
120ms TTL=51
CloudflareDNS1.1.1.1
1.0.0.1
185ms TTL=54
175ms TTL=54
华为云DNS122.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
香港宽频DNS203.80.96.10
203.80.96.9
39ms TTL=52
39ms TTL=52
赛门铁克诺顿DNS199.85.126.10
199.85.127.10
31ms TTL=56
33ms TTL=56
oracle+dynDNS216.146.35.35
216.146.36.36
请求超时
瑞士瑞信银行DNS64.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

幸福とは現在を楽しむことであり、また明日を楽しみにすることです。
最后更新于 2023-05-31