在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:
sh pf_install.sh
====== hysteria(tun)for pfSense一键安装脚本 ====== 文件复制完成! mosdns_enable: YES -> YES hysteria_enable: YES -> YES 启动参数添加完成! 执行权限添加完成! hysteria安装完成! mosdns命令: 启动: mosdns service start 停止: mosdns service stop 重启: mosdns service restart 查看状态: mosdns service status hysteria命令: 启动: service hysteria start 停止: service hysteria stop 重启: service hysteria restart
添加接口
启动mosdns:
mosdns service start
手动方式启动hysteria,并进行下一步配置:
/usr/local/bin/hysteria -c /usr/local/etc/hysteria/config.json
转到接口>分配,添加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网卡。
cat>/usr/local/etc/rc.syshook.d/start/97-tun_up<<EOF
ifconfig tun_0 up
将改好配置的安装包上传到OPNSense防火墙,进入程序目录,运行脚本安装hysteria。
sh opn_install .sh
启动mosdns:
mosdns service start
手动方式启动hysteria,并进行下一步配置:
/usr/local/bin/hysteria -c /usr/local/etc/hysteria/config.json
转到接口>分配,添加tun接口,启用并设置IP和网关。注意分配IP和网关不要与现有任何接口地址冲突。
添加网关,在添加完成以后,注意回到接口设置,选中新添加的网关。
添加规则
设置分流规则,让国外IP走tun接口,国内IP走默认网关。这里需要用到别名,添加别名有两种方法,一种是使用GeoIP,另一种是使用网址表,两个选一种即可。
1、添加GeoIP别名
转到防火墙>别名,GeoIP 设置选项卡,在网址栏粘贴下面的链接地址并应用:
https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=fzp4V6mjbTHvbqGj&suffix=zip
转到防火墙>别名,添加一个中国区GeoIP别名。
添加完成并应用后,如下图所示:
2、添加网址表别名
转到防火墙>别名,添加一个别名,类型选URL Table(IPs),刷新(更新)频率根据需要填写,内容直接粘贴下面的地址,然后保存即可。
https://ispip.clang.cn/all_cn_cidr.txt
别名设置完成以后,转到防火墙>规则策略,LAN选项卡,修改默认接口规则。地址族IPv4,协议any,目标CN_IP,网关指定为默认或运营商出口网关。
添加另一条国外IP走透明网关的分流规则。源LAN子网,目标any,网关选tun网关。
注意:两条规则的顺序不能弄错。
开机自启
安装脚本已添加开机自启命令,无需再设置。
检查测试
配置完成以后,重启防火墙,测试是否能正常访问google、youtube等网站,访问 ip111.cn,检查分流是否正常。
附件下载
hysteria for pfSense and OPNsense(TUN)
相关文章