OPNsense配置Clash透明代理

Clash一款强大的本地HTTP/HTTPS/SOCKS代理软件,内置DNS服务器,可以最大限度减少DNS污染,支持DoH/DoT上游DNS。可以基于域、GEOIP、IP-CIDR或进程名称规则将数据包路由到不同目的地。代理组允许用户制定灵活的规则,支持自动回退、负载均衡或基于延迟自动选择远程代理节点。近期,有网友开发了在OPNsense上使用的Clash插件,下面介绍安配置方法。

使用的软件版本:OPNsense 23.7.5中文定制版。

一、前期准备

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

二、 添加源

添加Clash安装源,进入shell环境,运行以下命令添加安装源:

fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf

更新存储库:

pkg update

安装clash本地客户端:

pkg install net/clash

三、 安装Clash UI插件

进入OPNsense的Web界面,转到系统-固件-插件菜单,找到os-clash-maxit插件,点击右侧的安装按钮进行安装(示例已安装完成)。

四、导出clash配置文件

从正常使用的Clash for Windows中导出所使用机场的配置文件,将socks-port: 7891、redir-port: 7892、mixed-port: 7893等删除,由于是在防火墙上运行clash,为了让客户端使用代理,allow-lan参数需设置为true;DNS监听端口不要使用53端口,避免与防火墙unbound dns使用的端口冲突。将导出的文件改名为clash.conf,上传到/usr/local/etc/目录。

五、 配置Clash

在OPNsense的Web界面,转到服务-Clash-常规,将修改好的配置文件复制到配置选框中,选中启用,然后点击保存。

配置文件保存在/usr/local/etc/clash.conf,可以直接修改。

六、检查Clash服务是否启动

转到仪表大厅,检查Clash服务是否正常启动。

在浏览器输入LAN地址:9090,回车后如果显示以下内容,表示clash服务已正常启动。

{"hello":"clash"}

七、设置系统代理

在客户端系统上,打开代理服务器选项,代理地址输入OPNsense的LAN地址,端口7890。

八、测试代理

访问google或youtube,测试代理是否正常。可以打开ipaddress.my网站查看代理地址。

九、 透明代理设置

通过设置Web代理来实现透明代理,让客户端无需任何设置即可访问特定网站。

1、添加内部CA

https透明代理需要CA,导航到系统> 证书>发行菜单,单击添加一个内部CA,输入各项信息,如下图所示:

2、启用Web代理

转到服务>Web代理>管理,选中启用代理选项。其他选项根据需要设置,尽量使用默认选项。

3、设置父代理

转到服务>Web代理>管理,单击代理常规设置下拉菜单,找到父代理设置,输入Clash代理信息,主机127.0.0.1,端口7890,其他选项留空。

如果启用了zerotier服务,或者需要访问本地服务器,不需要通过代理访问,可以在本地IP域或本地IP中输入需要排除的项,如下图所示:

4、设置代理缓存

转到服务>Web代理>管理,单击代理常规设置下拉菜单,找到代理缓存设置。为了减少不可预知因素导致代理失效,建议禁用本地缓存。如下图所示,将缓存大小设置为0即可。

5、设置正向代理

转到服务>Web代理>管理,单击正向代理下拉菜单,设置正向代理选项,代理接口选LAN,选中启用透明HTTP代理和启用SSL检查,选中仅记录SNI信息,CA选中前面新建的SSL,选中允许接口子网选项,其他选项默认即可。

根据上图中箭头所指位置,添加http和https代理的防火墙规则。添加完成以后如下图所示:

6、检查测试

客户端取消代理服务器设置,访问google、youtube等网站,检查透明代理设置是否正确。

十、使用hysteria节点

如果VPS配置了Hysteria或Hysteria2节点,那么可以替换Clash Meta内核来配置hysteria节点。

1、替换Clash内核程序

下载freebsd平台最新版Clash.Meta内核程序,该内核已支持hysteria2。解压缩后改名为clash,上传替换掉OPNsense防火墙/usr/local/bin/目录下的clash程序,并使用chmod +x clash命令赋予该程序执行权限。

2、修改Clash配置文件

下载hysteria/hysteria2的clash配置模板文件hysteria/hysteria2.0,根据VPS服务器hysteria/hysteria2配置信息,修改节点和代理组信息,端口必须与Web代理-父代理使用的端口一致。

修改完成后,使用基于Meta内核的代理程序进行测试,确保配置文件正确。

3、替换配置文件

将Clash配置文件的文本内容复制到OPNsense的服务-Clash-常规处的配置文件框中,点击保存,然后点击右上方按钮重启Clash。

经过以上设置,现在防火墙下面的客户端就可以使用远程hysteria节点进行代理访问了。

经实际测试,与直接代理相比,速度影响基本可以忽略。根据硬件配置的不同,会稍微增加CPU 5%-15%的使用率。

相关文章:

OPNsense配置Clash透明代理》上有10个想法

  1. 我的clash for windows配置文件中有一句 listen: ‘127.0.0.1:35353’。请问这个应该怎么改?
    —————–
    dns:
    enable: true
    listen: ‘127.0.0.1:35353’
    default-nameserver: [223.5.5.5, 114.114.114.114]
    enhanced-mode: fake-ip
    fake-ip-range: 198.18.0.1/16

    ——————–

  2. 配置了透明代理之后内网的设备可以正常透明代理上网,但是防火墙本身不走代理访问网站,博主知道该咋设置吗?

  3. 如果从clash复制出来config后又自己修改过的话,一定要记得不能有空行!!!!这个插件估计文件检查比较严格,clash客户端或者直接运行clash core的话,config带有空行不影响运行,但是这个插件不行。今天换成clash premium core,一度以为是不支持,结果就是单纯我的config有空行。。。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注