本文探討軟路由配置愛快為主路由,OpenWrt 作為旁路網關的設置。並且 OpenWrt 提供 DNS 去廣告和國內外分流。整個網絡單層 NAT,並設置為全錐形 NAT 便於 PCDN 的運行。
網絡環境#
- 內網:10.0.0.0/24
- 外網:PPPoE 撥號
- 愛快:10.0.0.1
- OpenWrt: 10.0.0.2
單層 NAT 配置#
愛快作為主路由,所以整個內網由愛快提供 NAT。在愛快中開啟 NAT1 類型:
愛快開啟 UPnP,OpenWrt 關閉 UPnP。
關閉 OpenWrt 全錐形 NAT,關閉防火牆動態偽裝。開啟轉發。
OpenWrt 的動態偽裝就是 NAT,開了之後會多一層 NAT,一定要關掉。
關閉動態偽裝之後,由於 ARP 驗證可能導致無法上網,實測主路由為愛快時,不影響上網。
刪除以下防火牆規則,如有:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
以上防火牆規則也是動態偽裝,一樣要刪除。
設置完之後,重啟 OpenWrt。
驗證是否單層 NAT#
通過愛快終端監控,如果 OpenWrt (10.0.0.2) 也提供 NAT 的話,在愛快裡面是看不到其他終端有流量經過的,所有的流量都打到 10.0.0.2 上的,如果不是都打到 OpenWrt 上則證明為單層 NAT。
此時,只有科學的流量才會在愛快中顯示過 OpenWrt。國內流量顯示為各個對應終端。
使用雙 ADG 配合 SSRP 國內外 DNS 分流#
配置雙 ADG#
你需要知道:此設置不需要 SmartDNS 和 Turbo ACC 的 DNS 緩存。如有全部關閉。
在 OpenWrt 可以直接安裝 luci-app-adguardhome。安裝之後進行配置國內版 ADG。
首先設置重定向模式:作為 dnsmasq 上游服務器。
進入 ADG 管理面板後,設置國內 DNS。上游 DNS 服務器設置如下(參考):
https://dns.alidns.com/dns-query
https://doh.pub/dns-query
https://dns.pub/dns-query
tls://dns.pub
tls://dns.alidns.com
tls://dot.pub
Bootstrap DNS 服務器設置為當地運營商 DNS(備選阿里雲):
211.136.150.66
211.136.112.50
223.5.5.5
223.6.6.6
211.136.150.66
211.136.112.50
為上海移動 DNS。
速度限制設為 0。
接下來配置第二個 ADG。可以使用 Docker 也可以在第二台虛擬機安裝 ADG。我這邊使用第二台機器(10.0.0.106)安裝 ADG。
安裝之後配置 DNS 為國外 DNS。
上游 DNS 服務器設置如下(參考):
https://dns.google/dns-query
tls://dns.google
https://dns.cloudflare.com/dns-query
https://dns.cloudflare.com/dns-query
Bootstrap DNS 服務器設置為當地運營商 DNS(備選阿里雲):
211.136.150.66
211.136.112.50
223.5.5.5
223.6.6.6
禁用 IPv6 解析。(SSRP 中某些機場不支持 IPv6 導致無法上網)。速度限制不限。
現在記住:
- 國內 DNS:10.0.0.2:6053 (ADG 設置的端口)
- 國外 DNS:10.0.0.106:6053
配置 dnsmasq#
進入到 OpenWrt 的「網絡」-「DHCP/DNS」,DNS 轉發應該只有 ADG 的地址。我這邊就是 127.0.0.1#6053
,沒有其他轉發了。
配置 SSRP#
如下圖配置:
選擇繞過中國大陸 IP,國外 DNS 填寫國外分流 ADG。國內 DNS 不填。如果已經填寫,選擇「其他」,留白就行。
轉到「狀態」,更新「【GFW 列表】數據庫」,「【國內 IP 段】數據庫」。