最近因为网络问题烦的我头疼,我一直使用 macOS 下的 V2rayU 用来管理代理,内网其他服务直接内部使用转换的 SOCKS5,初期还行,但是总有一些软件没办法使用。没提供设置代理的方式或者不使用系统代理(只有极少的软件直接用系统代理),迫于无奈又搭了一个 v2rayA 的 Docker 服务开透明代理,内网其他机器有需求的话直接把网关指向这个 IP,使用上越来越繁琐,这些麻烦让我盯上了我的主硬路由。
需要实现一个根据规则分流的服务,内网服务免配置,直接作用在 NAT 互联网出入口。
安装基础环境
正好我有一个闲置的 J1900 工控,有两个网口,这货顺理成章的就成了我的路由器。先安装 Proxmox VE 虚拟化,然后直接导入 OpenWrt 22.03.5 的镜像。配置下虚拟机然后扩展分区等等。
开机后配置 PPPoE 和 DHCP,然后安装中文包基础需要的一些组件,比如 unzip、gzip、wget 之类。
PassWall2
安装
本文基于 OpenWRT 22.03,OpenWRT 23.04 安装已经更新。
软路由上需要一个管理配置规则的软件,可选的非常多,HelloWorld、OpenClash、PassWall 等等。综合比较了一下我选择了 PassWall2。主要是我懒不愿意自己编译还有希望使用官方原版的系统。
首先下载 PassWall2 的依赖,压缩包解压待处理。然后按顺序安装。
opkg update
opkg remove dnsmasq && opkg install dnsmasq-full
unzip passwall2_packages_ipk_x86_64.zip
opkg install *.ipk
opkg install ipset iptables-nft kmod-nft-socket kmod-nft-tproxy kmod-nft-nat iptables-mod-tproxy iptables-mod-socket iptables-mod-iprange iptables-mod-conntrack-extra kmod-ipt-nat
opkg install luci-app-passwall2_1.18-1_all.ipk
opkg install luci-i18n-passwall2-zh-cn_1.18-1_all.ipk
配置
分享一下我的分流规则,我一共有 4 个规则。
Direct
直连规则,主要是匹配内网网段直连。
网络: TCP UDP
域名: geosite:apple-cn
IP: geoip:private
BT
BT 协议规则,让 BT 服务直连,节省机场流量和防止使用禁止 BT 的机场被封号。
协议名称: bittorrent
Proxy
前置规则,因为我 China 直连规则范围特别大,防止某些网站匹配到直连。
网络: TCP UDP
域名: domain:s3.amazonaws.com
IP:
China
直连规则,国内的服务绕过代理,直接直连。
网络: TCP UDP
域名: geosite:cn
IP: geoip:cn
总结
折腾了 2 天,终于舒服了。配置好分流规则,基本是国内直连,国外全部代理,内网所有服务包括手机之类只要在内网环境就可以直接免配置使用,不用每个客户端都去处理一下了。
Update OpenWRT 23.04
进入 2024 年,OpenWRT 发布了新版本,防火墙切换到了 nftables,不需要安装那么多的依赖了,变得简单了很多。我也把我的路由器升级了一下。
opkg update
opkg install unzip wget-ssl
opkg remove dnsmasq && opkg install dnsmasq-full
unzip passwall2_packages_ipk_x86_64.zip
opkg install kmod-nft-socket kmod-nft-tproxy
opkg install luci-app-passwall2_?_all.ipk
opkg install luci-i18n-passwall2-zh-cn_?_all.ipk