在pfSense、OPNsense配置hysteria代理教程一文中,介绍了使用V2Ray进行DNS分流,使用防火墙自带squid插件配置hysteria透明代理的方法。与hysteria2不同,hysteria在FreeBSD上支持tun功能,这也是很多用户还在使用hysteria(最高1.35版本)的原因。本文介绍使用hysteria的tun虚拟网卡,配合mosdns进行DNS分流实现透明网关的方法。
在配置hysteria之前,请先按正常步骤配置防火墙,确保各项功能正常使用。本教程假设已经配置好了hysteria的服务端,并进行了可用性测试。
本教程所使用的防火墙为pfSense plus 24.03和OPNsense24.7.3。
注意:由于msdns需要用到dns的53端口,为了避免冲突,需要将防火墙的DNS解析或转发(unbound dns)功能关闭。
修改配置
下载附件并解压缩,修改配置文件。config.json为hysteria的客户端配置文件,根据自己的节点信息进行修改。config.yam为mosdns的客户端配置文件,来源为github。pfSense的安装脚本为pf_install.sh,OPNsense的安装脚本为opn_install.sh。
pfSense
安装
将配置文件修改好以后,使用finalShell将文件上传至防火墙,进入程序所在目录,运行脚本安装hysteria:
添加接口
启动mosdns:
手动方式启动hysteria,并进行下一步配置:
转到接口>分配,添加tun接口,启用并设置IP和网关。注意分配IP和网关不要与现有任何接口地址冲突。
添加规则
设置分流规则,让国外IP走tun接口,国内IP走默认网关。转到防火墙>别名管理,网址选项卡,点击右下角添加按钮,添加国内IP段更新网址。
转到防火墙>规则策略,LAN选项卡,修改LAN接口默认规则,国内IP走默认网关,目标选中主机名别名CN_IP,网关为默认网关。
添加另一条国外IP走透明网关的分流规则,源LAN子网,目标any。
网关选tun网关。
设置完成,点击保存。LAN接口规则如下图所示:
开机自启
在Shellcmd插件里,添加三条开机启动命令,如下图所示,注意hysteria的启动类型为earlyshellcmd。ifconfig tun_0 up命令为启用tun接口,由于pfSense防火墙的限制,tun接口不能做到在开机的时候自动启用,必须手动启动tun虚拟接口。下图tun接口名称为tun_0,如果你的接口名称不同,请修改“ifconfig tun_0 up”命令。
检查测试
配置完成以后,重启防火墙,测试是否能正常访问google、youtube等网站,访问ip111.cn,检查分流是否正常。
OPNsense
安装
附件当中hysteria客户端配置文件tun网卡名称为tun_0,如果你网卡名称不是tun_0,请对应修改安装脚本下面部分的网卡名称,该命令的作用是在开机的时候启用tun网卡。
将改好配置的安装包上传到OPNSense防火墙,进入程序目录,运行脚本安装hysteria。
启动mosdns:
手动方式启动hysteria,并进行下一步配置:
转到接口>分配,添加tun接口,启用并设置IP和网关。注意分配IP和网关不要与现有任何接口地址冲突。
添加网关,在添加完成以后,注意回到接口设置,选中新添加的网关。
添加规则
设置分流规则,让国外IP走tun接口,国内IP走默认网关。这里需要用到别名,添加别名有两种方法,一种是使用GeoIP,另一种是使用网址表,两个选一种即可。
1、添加GeoIP别名
转到防火墙>别名,GeoIP 设置选项卡,在网址栏粘贴下面的链接地址并应用:
转到防火墙>别名,添加一个中国区GeoIP别名。
添加完成并应用后,如下图所示:
2、添加网址表别名
转到防火墙>别名,添加一个别名,类型选URL Table(IPs),刷新(更新)频率根据需要填写,内容直接粘贴下面的地址,然后保存即可。
别名设置完成以后,转到防火墙>规则策略,LAN选项卡,修改默认接口规则。地址族IPv4,协议any,目标CN_IP,网关指定为默认或运营商出口网关。
添加另一条国外IP走透明网关的分流规则。源LAN子网,目标any,网关选tun网关。
注意:两条规则的顺序不能弄错。
开机自启
安装脚本已添加开机自启命令,无需再设置。
检查测试
配置完成以后,重启防火墙,测试是否能正常访问google、youtube等网站,访问 ip111.cn,检查分流是否正常。
附件下载
hysteria for pfSense and OPNsense(TUN)
相关文章