只花不到 150 元,部署一套可能是最佳体验的家庭网络系统

56 天前
 mouyase

原文地址: https://yojigen.tech/30.html

前言

哪个男孩不想要一个可以自由驰骋互联网的网络呢?

关于家中的互联网建设这一块,已经不知道有多少博主聊过,自己也是来来回回折腾了很多种方案。

最近终于找到了我直到目前为止我认为可能是最完美的方案——PaoPaoDNS+PaoPaoGateWay 。然后就在自己家的软路由系统里部署了起来,目前也是稳定用了一个月感觉非常的舒适。

但是我家里面用的是软路由+虚拟机的方案,本身全套机器下载价格要 400 元左右了,而且机器也是做了一点点硬改,没有改机能力的人恐怕用起来也会比较麻烦。

于是我就在想,能不能用比较便宜的方案,和较低的功耗,用一些市面上常见的设备来实现这一套方案呢?

最终预期的结果

在尽可能保证正常网络不会受到影响的情况下,实现网内透明代理,以用于科学上网。

附赠功能: 去广告,虚拟局域网组网等

设备选择和采购

于是经过我的思考,最后做出了如下的设备方案:

以上设备各位读者可以根据自身的经济条件和现有的设备来决定如何选择,比如全放进虚拟机里之类。而我这次选择的设备是下面这几个。

硬路由-JCG Q30 Pro: 59 元

这个价格不算特别的大众,这是一台天线坏掉的机器,而我的家里面因为还有三个其他的无线路由器当做 AP 使用,所以我不需要无线网络功能。

这台机器的芯片是联发科的 mt7981 ,内存是 256m(也有 512m 的版本),性能较好,可以轻松跑满千兆。而且这款机器还是被 OpenWRT 和 immortalwrt 官方支持的型号,可以直接刷主线版的固件,这样也可以避免一些网上所谓的“大神”编译的固件中的各种坑。

机器怎么刷机我这里就不说了,网上有一些现成的资料,在这里说会导致教程太过于复杂,而且也许你的设备也不需要刷机,对吧。

其实我个人目前比较推荐的机器是爱快 IK-Q3000 ,不用刷机就能享受官方的爱快的系统固件,机身自己支持 AX3000 ,如果没有其他无线组网,一台机器就能解决大部分人家中的路由和 WiFI 了。现在这个机器京东售价 159 ,同样所谓 mt7981 芯片的机器,他也就比别的机器贵了 20-30 。30 块钱买个免刷机带售后的爱快系统我觉得还是挺香的。(不过不清楚这台机器有没有硬件转发,如果没有的话还是不要用了)

ARM 主机-玩客云: 28 元

玩客云算是我们垃圾佬应该非常熟悉的一个东西了,他本身是一个拿来做 PCDN 的所谓的“挖矿”设备,后续随着 PCDN 的收益越来越低,运营商对 PCDN 的打击等等原因,现在网上有着大量的机器在流通。而且由于存世量多,玩的人也多,这机器在价格便宜的同时,机器的玩法也开发的比较全面,很多系统都能刷入进去。

我们这里选择给它刷入 Armbian ,以用来部署 Docker 容器,刷机方法大家也可以参考网络资料。

X86 小主机-中兴 CT321G2: 本人购入 79 元,咸鱼现价 50 元

这个小机器是之前无意中发现的,机身外壳的做工还不错,虽然是塑料但是很厚实。这个机器由于只有一个千兆网口,不好做软路由,且只有一个无法更换 4g 硬盘,所以对于垃圾佬来说,可玩性就有点差了,导致价格一直不高。但是这台机器的 CPU 是小主机里面不太常见的 AMD GX-218GL ,这块 CPU 性能和 J1900 差不太多,功耗也都是在 10w 左右,但是他有一个 J1900 没有的优势: 支持 AES 硬解。

大家都知道 AES 硬解意味着什么,加上小尺寸,低功耗,所以这台机器非常适合拿来做我们的网关机。

注意: 这个机器只有 VGA 输出,需要你准备支持 VGA 的显示器和线,或者转换线。

系统搭建

主网络

首先要保证你的网络是正常的,你需要了解如何使用你的路由器正确的设置上网功能。 我这里以最常见的网络地址作为演示,你可以根据你的需求来设置自己的网段。

路由器 IP: 192.168.1.1
DHCP 范围: 192.168.1.101-192.168.1.200
局域网段: 192.168.1.0/24
子网掩码: 255.255.255.0
网关机 IP: 192.168.1.2
Docker 容器机 IP: 192.168.1.3

网关机

首先要准备一下 PaoPaoGateWay 的系统镜像,由于是在物理机运行,所以需要全网卡驱动的支持。官方 Github 上的镜像是默认不带全网卡驱动的,需要我们用官方的 docker 来定制一下 ios 镜像。 定制方式非常简单,随便找一台 x86 的装有 docker 的机器(官方容器不支持 arm),运行下面两条命令,就能在当前目录获得一个具有全部网卡的 ios 镜像了。

docker pull sliamb/ppgwiso:fullmod
docker run --rm -v .:/data sliamb/ppgwiso:fullmod

如果你不方便定制,也可以下载我定制好的镜像文件(记得解压)。

paopao-gateway-x86-64-custom-364b136.zip

准备一个写磁盘的工具,Rufus 、balenaEtcher 、UltraISO 之类的都可以,我这里使用 Rufus 。 准备一个 U 盘,将镜像文件写入到 U 盘里。

然后将 U 盘插入 x86 小主机,在 Bios 里设置为从 U 盘启动系统,通电自动启动系统,最后用网线将网口和路由器的 Lan 口进行连接。

这样网关机这里就算设置完成了。

注:

Docker 机

首先搭建好 Docker 环境,这里根据不同的设备和系统会有不同的方法,请根据网络上的教程自行操作。

创建目录 DNS ,并且在其中创建docker-compose.yaml文件,用于配置容器。

docker-compose.yaml文件内容参考如下。

services:
  paopaodns_china:
    image: sliamb/paopaodns:latest
    container_name: PaoPaoDNS-China
    restart: always
    volumes:
      - ./PaoPaoDNS-China:/data
    networks:
      dns:
        ipv4_address: 172.30.1.10 # IP 地址为 Docker 内网分配地址,用于内网访问
    environment:
      - TZ=Asia/Shanghai
      - UPDATE=weekly
      - DNS_SERVERNAME=PaoPaoDNS-China
      - DNSPORT=53
      - CNAUTO=no

  paopaodns _global:
    image: sliamb/paopaodns:latest
    container_name: PaoPaoDNS-Global
    restart: always
    volumes:
      - ./PaoPaoDNS-Global:/data
    networks:
      dns:
        ipu4_address: 172.30.1.20 # IP 地址为 Docker 内网分配地址,用于内网访问
    environment:
      - TZ=Asia/Shanghai
      - UPDATE=weekly
      - DNS_SERVERNAME=PaoPaoDNS-Global
      - DNSPORT=53
      - CNAUTO=yes
      - CNFALL=yes
      - CN_TRACKER=yes
      - USE_HOSTS=no
      - IPU6=no
      - SOCKS5=192.168.1.2:1080 # IP 地址为网关机的 IP 地址
      - SERVER_IP=192.168.1.3 # IP 地址为本台宿主机的 IP 地址
      - CUSTOM_FORWARD=192.168.1.2:53 # IP 地址为网关机的 IP 地址
      - AUTO_FORWARD=yes
      - AUTO_FORWARD_CHECK=yes
      - USE_MARK_DATA=yes
      - HTTP_FILE=yes
    ports:
      - "5304:5304/udp"
      - "5304:5304/tcp"
      - "7889:7889/tcp"

  adguard_home:
    image: adguard/adguardhome:latest
    container_name: AdGuardHome
    restart: always
    depends_on:
    - paopaodns_china
    - paopaodns_global
    volumes:
    - ./AdGuardHome:/opt/adguardhome/work
    - ./AdGuardHome:/opt/adguardhome/conf
    networks:
      dns:
        ipv4_address: 172.30.1.2 # IP 地址为 Docker 内网分配地址,用于内网访问
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "53:53/udp"
      - "53:53/tcp"
      - "80:80/tcp" # 如果不是使用 80 端口作为网页端口则需要添加对应的端口映射
      - "3000:3000/tcp" # 安装成功后可以删除

networks:
  dns:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.30.1.0/24
          gateway: 172.30.1.1

解释一下这个配置文件。

这个配置文件定义了三个容器。

两个 PaoPaoDNS ,用来作为 AdguardHome 的上游 DNS ,其中一个容器没有做特殊的配置,仅当做本地递归 DNS 服务器使用。而另一台则添加了分流相关的设置,用于对需要出国的设备进行 DNS 分流处理。

AdguardHome ,用于提供本地 DNS 服务,给不同的客户端配置不同的上游 DNS ,以及去广告(虽然是他的本职,但是这里反而成了附赠的功能了)。

注: 爱快官方之前在论坛中提到,系统更新到 3.7.12 后,DHCP 设置将支持对不同的客户端配置不同的 DNS ,所以用爱快系统的可以根据需求不使用 AdguardHome 。

接下来启动容器。

docker compose up -d

容器正常启动后,则可以使用本机 IP:3000访问 AdguardHome 的安装页面了,设置一下用户名和密码,以及 WebUI 的端口(建议 80)即可。

网络配置

因为我文章里是使用的 OpenWRT 作为路由系统,所以这里也是用 OpenWRT 来演示。

启动网关机和 Docker 容器机,让他们的信息出现在你的路由器里面。

首先要固定一下 IP 。

打开 网络→DHCP/DNS→静态地址分配,将网关机的 IP 固定为192.168.1.2,将 Docker 机的 IP 固定为192.168.1.3

然后将 DHCP 默认的 DNS 设置为192.168.1.3(如果需要输入两个地址就都填一样的)。

接下来要设置网内设备的 DNS 。

打开 网络→接口→lan→DHCP 服务器→高级设置,在 DHCP 选项中添加。

6,192.168.1.3

这个值就是你的 Docker 机的 IP 。

然后重启一下网关机和 Docker 机,让他们可以获取到新的 IP 和 DNS 。

接下来网页打开 AdguardHome 的后台http://192.168.1.3,在 DNS 设置中,将上游 DNS 设置为172.30.1.10,并且关闭缓存。

这时我们可以试一下我们的 DNS 能否正常使用。

nslookup whoami.03k.org 192.168.1.3
服务器:  Unknown
Address:  192.168.1.3

非权威应答:
名称:    whoami.03k.org
Address:  123.234.123.234 #连接权威 DNS 服务器的 IP=你的宽带 IP

返回的地址如果是你的公网 IP 网段,就说明递归 DNS 已经生效了。

接下来是设置静态路由,我们回到 OpenWRT 的界面。

打开 网络→路由→静态 IPv4 路由,添加一条新的静态路由,类型unicast,目标11.0.0.0/8,网关192.168.1.2

最后要屏蔽掉对 FakeIP 的 NAT 。

打开 网络→防火墙→通信规则,添加一条新的规则,源区域为lan,目标区域为wan,目标地址为11.0.0.0/8,操作为丢弃

注:

如果有使用一些纯靠 IP 访问的软件(例如网飞、Telegram),还需要把他们的 IP 端也设置相同的静态路由和通信规则中,比较长这里我就不写了,有需求的可以自行添加。

到这里网络路由相关内容设置完毕。

网关配置

网关配置文件在 Docker 机器的DNS/PaoPaoDNS-Global目录中的ppgw.ini

#paopao-gateway

# mode=socks5|ovpn|yaml|suburl|free
# default: free
# free: 直接出站不走代理
# socks5: 使用 socks5 代理出站
# ovpn: 使用 ovpn 代理出站
# yaml: 使用 yaml 配置文件,yaml 配置文件在同目录下,文件名参考下面的 yamlfile
# suburl: 使用订阅地址,最常见的应该就是这种了
mode=suburl

# Set fakeip's CIDR here
# default: fake_cidr=7.0.0.0/8
# FakeIP 的网段,如果要修改,请修改成看似是外网的空 IP 网段
fake_cidr=11.0.0.0/8

# Set your trusted DNS here
# default: dns_ip=1.0.0.1
# 这里需要和 Docker 机,也就是 DNS 的 IP 匹配
dns_ip=192.168.1.3
# default: dns_port=53
# If used with PaoPaoDNS, you can set the 5304 port
# 这是网关获取配置的端口,如果没有修改过端口映射,请使用默认值
dns_port=5304

# Clash's web dashboard
# 这是网页管理面板的端口和密码
clash_web_port="80"
clash_web_password="clashpass"

# default:openport=no
# socks+http mixed 1080
openport=no

# default: udp_enable=no
udp_enable=no

# default:30
sleeptime=30

# socks5 mode settting
# default: socks5_ip=gatewayIP
# 这里需要填入网关 IP ,用于开启局域网内的 socks5 代理
socks5_ip="192.168.1.2"
# default: socks5_port="7890"
socks5_port="7890"

# ovpn mode settting
# The ovpn file in the same directory as the ppgw.ini.
# default: ovpnfile=custom.ovpn
ovpnfile="custom.ovpn"
ovpn_username=""
ovpn_password=""

# yaml mode settting
# The yaml file in the same directory as the ppgw.ini.
# default: yamlfile=custom.yaml
# 这里是 yaml 模式时,网关获取的配置文件的文件名
yamlfile="custom.yaml"

# suburl mode settting
# 这里填入你的订阅地址
suburl="https://..."
# 这里是订阅自动更新时间
subtime=1d

# fast_node=check/yes/no
# check: 代表会自动检查下面的 URL 能否访问,如果不能访问则自动重启服务并重新拉取订阅
# yes: 代表会自动根据延迟切换到延迟最低的节点,同时具有 check 的功能
# no: 代表不检查延迟与连通性
fast_node=yes
test_node_url="https://www.youtube.com/generate_204"
ext_node="Traffic|Expire| GB|Days|Date"
cpudelay="3000"

# dns burn setting
# depend on fast_node=yes & mode=suburl/yaml
dns_burn=no
# If used with PaoPaoDNS, you can set the PaoPaoDNS:53
# 这里需要设置成 DNS 的 IP
ex_dns="192.168.1.3:53"

# Network traffic records
net_rec=no
max_rec=5000

更详细的参数解释,以及自定义规则等等,请参考官方的文档,如果没有特殊需求,按本文的配置即可。

配置设备 DNS

我的教程中的方案,是建立在网内只有一部分设备出国,另一部分正常用网的场景,所以需要针对不同的设备,设置不同的上游 DNS 服务器。

如果你没有这种需求,可以直接在网络配置那一步中,将上游 DNS 设置为172.30.1.20,就不用继续往下看了。

如果你也像我一样,只需要部分的设备走出国规则,那就还需要在多一步设置。

打开 AdguardHome 的后台http://192.168.1.3

打开客户端设置,添加客户端。

添加需要出国的设备的 IP 或者 IP 段,然后在下面的自定义上游的地方,将上游 DNS 设置为172.30.1.20,然后保存即可。

至此系统全部搭建完毕。

测试

可以使用 Speedtest ,分别选择国内和国外的测速节点,看一下带宽能否跑满。

可以在https://ip111.cn或者https://ip.skk.moe检查一下 IP 分流是否正常。

可以用 NatTypeTester 检查一下 Nat 等级。

总结

整套设备花费是 59+28+50=137 元,这里是没有计算 U 盘和交换机的价格。

U 盘作为一个搞机佬,我相信各位家里一定会有的,而交换机要看自己网内具体有多少需要网线的设备,所以我就没有算在内。

这里面路由器的价格可能会有一些上下波动,比如你需要一款可以跑满千兆的路由器,又不想刷机,所以可能买了我推荐的爱快 Q3000 ,那价格就一下多了 100 元了,但是你买了更好的路由器就算不玩这套系统,那也可以让网络体验变好,也是不亏。而如果你家的网络没有达到千兆,比如只有 500M 甚至 100M ,那你大可买一些 mt7621 的路由器,刷个 OP 或者爱快的固件,这种路由器咸鱼 50 以内可以随便买。

希望这篇文章可以帮助到一直想要一套舒适的网络的你。

9451 次点击
所在节点    宽带症候群
98 条回复
yyysuo
55 天前
@mouyase 哦,明白了。那刚才我说的那个问题,我的科学网关是 sing-box puer 版本,偶发的会出现我前帖说的问题,所以干脆把 dns 网关 主路由 3 合一了,本质上也是 fakeip 分流,分流用 mosdns ,就规避了这个问题。泡泡网关用的是 mihomo ,不知道有没有在防火墙规则中添加规则,防止电报 IP 这种再发回到主路由。
nilai
55 天前
对于纯 ip 的应用, 在路由表上有没有简便的方法?

目前的方式是不是这样子的? 通过抓包应用---->得到对应的纯 ip 的详细信息---->主路由添加纯 ip 目标到 fake 网关


有没有简单一点,不需要得到应用的纯 ip , 能否在主路由中写路由表类似 0.0.0.0/0 下一跳指向 fake 网关(网段可能没这么大)
johnyoung24
55 天前
@Charkey +1🤣
yyysuo
55 天前
@nilai 目前已知的,就电报 IP 、netflix ip 、国外 dnsip 、fakeip 共 4 种需要设置路由表,加起来就几十个路由条目吧,如果全劫持,就要排除内网网段等 IP ,反而更麻烦,直接粘给你算了。


table inet singbox {
set local_ipv4 {
type ipv4_addr
flags interval
elements = {
28.0.0.0/8,
8.8.8.8/32,
8.8.4.4/32,
1.0.0.1/32,
1.1.1.1/32,
9.9.9.9/32,
8.41.4.0/24,
23.23.189.144/28,
23.246.0.0/18,
34.195.253.0/25,
37.77.184.0/21,
38.72.126.0/24,
45.57.0.0/17,
52.24.178.0/24,
52.35.140.0/24,
54.204.25.0/28,
54.213.167.0/24,
64.120.128.0/17,
66.197.128.0/17,
69.53.224.0/19,
103.87.204.0/22,
108.175.32.0/20,
185.2.220.0/22,
185.9.188.0/22,
192.173.64.0/18,
198.38.96.0/19,
198.45.48.0/20,
203.75.84.0/24,
203.198.13.0/24,
203.198.80.0/24,
207.45.72.0/22,
208.75.76.0/22,
210.0.153.0/24,
91.108.56.0/22,
91.108.4.0/22,
91.108.8.0/22,
91.108.16.0/22,
91.108.12.0/22,
149.154.160.0/20,
91.105.192.0/23,
91.108.20.0/22,
185.76.151.0/24,
95.161.64.0/20
}
}

set local_ipv6 {
type ipv6_addr
flags interval
elements = {
2001:b28:f23d::/48,
2001:b28:f23f::/48,
2001:67c:4e8::/48,
2001:b28:f23c::/48,
2a0a:f280::/32,
2607:fb10::/32,
2620:10c:7000::/44,
2a00:86c0::/32,
2a03:5640::/32,
fc00::/18
}
}

set router_ipv4 {
type ipv4_addr
flags interval
elements = {
28.0.0.0/8,
8.8.8.8/32,
8.8.4.4/32,
1.0.0.1/32,
1.1.1.1/32,
9.9.9.9/32
}
}

set router_ipv6 {
type ipv6_addr
flags interval
elements = {
fc00::/18
}
}

chain singbox-tproxy {
meta l4proto udp meta mark set 1 tproxy to :7895 accept
}

chain singbox-mark {
meta mark set 1
}

chain mangle-prerouting {
type filter hook prerouting priority mangle; policy accept;
ip daddr @local_ipv4 meta l4proto udp ct direction original goto singbox-tproxy
ip6 daddr @local_ipv6 meta l4proto udp ct direction original goto singbox-tproxy
}

chain mangle-output {
type route hook output priority mangle; policy accept;
ip daddr @router_ipv4 meta l4proto udp ct direction original goto singbox-mark
ip6 daddr @router_ipv6 meta l4proto udp ct direction original goto singbox-mark
}

chain nat-prerouting {
type nat hook prerouting priority dstnat; policy accept;
ip daddr @local_ipv4 meta l4proto tcp redirect to :7899
ip6 daddr @local_ipv6 meta l4proto tcp redirect to :7899
}

chain nat-output {
type nat hook output priority filter; policy accept;
ip daddr @router_ipv4 meta l4proto tcp redirect to :7899
ip6 daddr @router_ipv6 meta l4proto tcp redirect to :7899
}
}
ssgooglg
55 天前
感觉很复杂的样子 我直接路由器刷了 clash 配置下规则就好了。
bobryjosin
55 天前
Openwrt+Routeros
op 跑在 pve 里面,ros 是硬件 rb5009
op 用 passwall tproxy 模式,dns 分流 dnsmasq chinadns-ng+adguard
ros 和 op 走 vrrp ,op 离线 ros 切主路由。
原本准备换 ccr 用 bgp 拉全表 as 分流,后来想想上个网而已,就不整这么复杂了。
mouyase
55 天前
@nilai

如果这样做,就相当于把对所有 IP 的请求全部导向了旁路网关,这和我们想要的结果(国内外分流)是相违背的。

目前的做法是,设备要访问一个网站,会先向 PaoPaoDNS 请求解析地址,PaoPaoDNS 根据分流规则,分别到递归服务器和 FakeIP 上去解析。如果是国外的应用,会返回 FakeIP 。这样设备就会访问 FakeIP 。由于创建了静态路由表,所以 FakeIP 的请求流向了 PaoPaoGateWay 旁路网关。从而实现经由网关访问对应的网站。

但是 IP 应用由于没有 DNS 这一步,导致网络请求直接从普通网关流出而没有流向旁路网关。

所以需要对其 IP 设置静态路由表。
Charkey
55 天前
@johnyoung24 我发现服务 passwall 有时候需要重启下才能正常,不知道什么原因
yyysuo
55 天前
@bobryjosin 有个电报群的群友,之前大部分是你这个方案,现在全改 fakeip 网关了。
mouyase
55 天前
@ssgooglg
直接路由 Clash 难受就难受在一炸全炸
bobryjosin
55 天前
@yyysuo 我不想污染原本的 dns 解析,有时候根据 realip 能判断一些服务是否有效,fakeip 的入侵性太强了,而且我还有一部分 v4 和 v6 的段要走三层隧道,也不太可能维护两套 dns ,个人习惯问题 fakeip 不太适合我。
yyysuo
55 天前
@bobryjosin 入侵性太强不太理解,对于一个域名获取对应的 ip ,不管是真的还是假的,只有可达不可达两种状态,科学网关挂了,不管真假,都不会可达的,结果并没有不同,现在的 fakeip ,ttl 基本上给 1 ,没什么残余的影响;另外典型的 fakeip 网关,客户端的 dns 和网关都应该是主路由,不经过 dns 的 ip 直接发起来的连接,默认是直连的。
povsister
55 天前
@yyysuo
扶墙 != 无法直连访问

例如 Github 这种只是被劣化+间歇性 SNI 阻断,所以扶墙是为了改善体验。
Fakeip 要配合 FakeDNS ,DNS 自带不可控 cache ,很容易被各种奇怪的客户端软件缓存解析结果。
而且,扶墙梯重启的时候,不一定会保存之前的域名-IP 映射关系,那之前被客户端缓存的 IP 在重启后的梯子看来就是无效的。
综上,fakeip 问题很多,虽然其大幅度降低了拓扑配置门槛,也省掉了一个 DNS RTT (可以直接将域名送往远程服务器落地再解析),但我个人也拒绝 fakeip 的方案。
bobryjosin
55 天前
@yyysuo 比如我要判断一个网站是否用了 cf ,用了哪家 cdn ,如果返回的是 realip ,我能快速根据 ip 段判断,直接用浏览器插件就可以看,全是 fakeip 就不行了,还有很多类似的场景,所以说是个人习惯问题。
mouyase
55 天前
@bobryjosin

我猜你是把 FakeIP 这个操作和 Clash 的 FakeIP 模式绑定到一起了。实际上这两者并没有什么强关联。

Clash 是把所有网络请求全都引入到自身,然后在根据配置,选择 Real-IP 解析模式或者 FakeIP 解析模式。

如果是 Clash 的 FakeIP 解析,会把所有的网址全部解析为 FakeIP ,所以才会有你所谓的入侵性太强的问题,实际上这是 Clash 的问题而不是 FakeIP 的问题。

这套方案 DNS 是先在 PaoPaoDNS 上处理,而 PaoPaoDNS 只有国外(需要代理)的地址,才会送到 Clash 的 FakeIP 解析,其他的地址都是用递归服务器解析到真实 IP 的。而需要代理的地址,真实 IP 并不具备什么意义。如 @yyysuo 所说,只有可达和不可达两种状态。
mouyase
55 天前
@povsister
@bobryjosin

现在这个方案默认是将所有国外 IP 全部送去 FakeDNS 解析,也就是所谓的大陆白名单,但是如果你们的使用场景是有直连需求,那你们的方案应该是黑名单模式。那只把需要代理的地址送去 FakeDNS 解析就好了。
mouyase
55 天前
@povsister
@bobryjosin

需要 Real-IP = 可以直连 = PaoPaoDNS 直接解析
不能直连 = 可以使用 Fake-IP = PaoPaoDNS 使用 FakeIP 解析

这俩似乎并不冲突,而且在这个方案中也已经兼容了,只不过配置是需要修改一下的
povsister
55 天前
@mouyase
不管黑白,fakeip 总要污染一边,你只能说两害相权取其轻。但结果都是一样的,你选一边牺牲掉吧。
何况,这个黑白名单也不是 100%准确的,github 这种灰色的你到底怎么算,只能两边都牺牲掉。
mouyase
55 天前
@povsister
那这个时候问题就出现了,github 这种灰色的,是否能取到 Real-IP 呢,能取到说明可以直连,不能取到说明连不上,那走 Fake-IP 又有什么问题呢?

现在应该不存在什么方案可以在直连失败的时候自动切代理,检测到可以直连再自动关代理吧?

理论上不应该都是黑名单/白名单模式吗?
johnyoung24
55 天前
@Charkey 换 clash 吧,passwall 和 ssrp 我用着也偶尔出现小问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1073554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX