Clash是一款强大的本地HTTP/HTTPS/SOCKS代理软件,内置DNS服务器,可以最大限度减少DNS污染,支持DoH/DoT上游DNS。可以基于域、GEOIP、IP-CIDR或进程名称规则将数据包路由到不同目的地。代理组允许用户制定灵活的规则,支持自动回退、负载均衡或基于延迟自动选择远程代理节点。Clash也提供了基于FreeBSD平台的版本,可以在pfSense和OPNsense上正常运行。本文介绍在pfSense plus上的配置方法。
使用的防火墙版本为pfSense plus 23.05.1中文定制版,Clash使用最新的Clash.Meta内核程序,相比普通clash内核,可以支持更多的协议,例如:hysteria2。
一、前期准备
按一般步骤配置好防火墙,包括DNS、DHCP等,保证防火墙后面的客户端可以正访问网络。
二、上传文件
上传运行clash所需要的三个程序,clash配置文件、clash脚本程序和clash主程序。
1、clash配置文件
从正常使用的Clash for Windows中导出所使用机场的配置文件,将socks-port: 7891、redir-port: 7892、mixed-port: 7893等删除,如下图所示:
由于是在防火墙上运行clash,为了让客户端使用代理,allow-lan参数需设置为true;注意:DNS监听端口不要使用53端口,避免与防火墙DNS解析器或转发器使用的默认端口冲突。将导出的文件改名为clash.conf,上传到/usr/local/etc/目录。
2、clash脚本程序
在/usr/local/etc/rc.d/目录下,新建一个clash脚本程序,内容如下(文末有附件):
3、上传clash程序
下载freebsd平台Clash.Meta程序,解压缩后改名为clash,上传到/usr/local/bin目录下。
4、添加权限
给clash脚本和clash主程序添加执行权限:
chmod +x /usr/local/bin/clash chmod +x /usr/local/etc/rc.d/clash
5、修改系统配置
打开/etc/rc.conf文件,添加允许clash运行的参数:
clash_enable=yes
三、启动Clash
使用以下命令启动、停止或重启clash。
1、启动clash:
sh /usr/local/etc/rc.d/clash start
2、停止clash:
sh /usr/local/etc/rc.d/clash stop
3、重启clash:
sh /usr/local/etc/rc.d/clash restart
4、查看状态:
sh /usr/local/etc/rc.d/clash status
四、测试代理
客户端开启代理服务器,代理地址为防火墙的LAN IP地址,默认端口7890。
访问google或youtube,测试代理是否正常。可以打开ipaddress.my网站查看代理地址。
五、开机自启
通过shellcmd添加命令,实现开机启动clash。命令内容如下:
sh /usr/local/etc/rc.d/clash start
六、透明代理
通过配置squid透明代理选项,让客户端无需任何设置即可访问特定网站。
安装squid插件
导航到系统>插件管理 ,点击squid软件包右侧安装按钮进行安装。
添加证书
配置https透明代理需要验证防火墙CA。导航到系统>证书管理,添加一个CAs,如下图所示。
添加完成如下图所示:
配置squid
导航到服务>Proxy Seriver,Local Cache选项卡,根据防火墙硬件配置设置好代理所需的本地缓存。如果没有缓存内容的需求,也可以直接禁用缓存,如下图所示。
1、常规设置
转到General选项卡,按照下图配置常规选项。选中Allow Users on Interface选项,不用再设置ACL的接口子网。
2、透明代理设置
选中透明HTTPS代理选项,接口选LAN,其他选项默认或留空。
3、SSL过滤设置
选中SSL过滤选项,SSL/MITM模式选Splice All,其他选项客户端需导入CA。验证CA选中前面添加的CA,其他选项保持默认或参照下图进行设置。
4、高级功能
打开显示高级功能,在自定义选项(认证前)栏里,输入以下内容:
never_direct allow all ssl_bump peek step2 ssl_bump peek step3
不添加该选项,将无法访问youtube、reddit、google等网站。
5、上游代理设置
转到Remote Cache选项卡,添加Clash代理信息。主机名输入127.0.0.1,端口输入clash的默认端口7890或配置文件指定的端口。
6、测试
点击右上角重启服务图标,重启squid服务。客户端取消代理服务器设置,访问google、youtube等网站,检查透明代理设置是否正确。
至此,在pfsense中设置Clash透明代理的步骤全部完成。经实际测试,与直接代理相比,速度影响基本可以忽略。根据硬件配置的不同,会稍微增加CPU 5%-15%的使用率。
教程使用的文件:clash脚本及示例配置
相关文章: