pfSense plus配置Clash透明代理

Clash是一款强大的本地HTTP/HTTPS/SOCKS代理软件,内置DNS服务器,可以最大限度减少DNS污染,支持DoH/DoT上游DNS。可以基于域、GEOIP、IP-CIDR或进程名称规则将数据包路由到不同目的地。代理组允许用户制定灵活的规则,支持自动回退、负载均衡或基于延迟自动选择远程代理节点。Clash也提供了基于FreeBSD平台的版本,可以在pfSense和OPNsense上正常运行。本教程介绍在pfSense plus上的安配置方法。

使用的软件为pfSense plus 23.01中文定制版,Clash使用Clash.Meta内核程序,支持hysteria。

一、前期准备

按常规步骤配置好防火墙,包括DNS、DHCP等,保证防火墙后面的客户端可以正访问网络。

二、上传文件

从Clash for Windows中导出所使用机场的配置文件,将socks-port: 7891、redir-port: 7892、mixed-port: 7893等删除,如下图所示:

如果使用hysteria节点,可以下载文末附件并解压缩,根据自己的节点信息修改config.yaml配置文件。由于是在防火墙上运行Clash,需要将allow-lan参数设置为true。使用FinalShell登录防火墙后台,将下载的Clash程序改名为clash,与附件中的两个文件一起上传到/root/clash目录下。

赋予clash程序执行权限:

chmod +x /root/clash/clash

三、启动程序

运行以下命令启动Clash,并根据显示的信息确认配置文件是否正确。

/root/clash/clash -d /root/clash

四、开机启动

在/usr/local/etc/rc.d目录新建一个clahs.sh文件,将下面的内容复制到该文件,并赋予该文件执行权限。

nohup /root/clash/clash -d /root/clash

五、测试代理

客户端开启代理服务器,代理地址为防火墙的LAN IP地址,端口为7890。

检查是否能正常访问google或youtube,访问ipaddress.my查看地址是否为代理地址。

六、透明代理

通过安装squid来实现透明代理。

安装插件

导航到系统>插件管理 ,找到squid软件包并点击右侧的按钮进行安装。

添加证书

导航到系统>证书管理,添加http和https透明代理需要的两个内部CAs,如下图所示。

配置squid

导航到服务>Proxy Seriver,Local Cache选项卡,根据防火墙硬件配置设置好代理所需的本地缓存,如果没有缓存内容的需求,也可以直接禁用缓存。

1、常规设置

转到General选项卡,按照下图配置常规选项。

2、透明代理设置

选中透明HTTPS代理选项,接口选LAN。

3、SSL过滤设置

选中SSL过滤选项,其他选项参照下图进行设置。

4、高级功能

打开显示高级功能,在自定义选项(认证前)栏里,输入以下内容:

never_direct allow all

5、上游代理设置

转到Remote Cache选项卡,添加Clash代理信息。

6、添加允许子网

转到ACLs选项卡,添加允许访问的接口子网。

7、测试

点击右上角的重启服务图标,重新启动squid服务。客户端取消代理服务器设置,打开浏览器访问google、youtube等网站,检查透明代理是否设置成功。

七、Clash命令参数

-d string               设置配置文件目录   
-ext-ctl string         覆盖外部控制器地址
-ext-ui string          覆盖外部ui目录 
-f string               指定配置文件
-m                      设置geodata模式
-secret string          覆盖RESTful API安全设置
-t                      测试配置文件并退出
-v                      显示当前clash版本

附件下载:clash-for-pfsense.zip

相关文章: