Clash一款强大的本地HTTP/HTTPS/SOCKS代理软件,内置DNS服务器,可以最大限度减少DNS污染,支持DoH/DoT上游DNS。可以基于域、GEOIP、IP-CIDR或进程名称规则将数据包路由到不同目的地。代理组允许用户制定灵活的规则,支持自动回退、负载均衡或基于延迟自动选择远程代理节点。Clash提供了基于Freebsd平台运行的程序,本文介绍在OPNsense 24.1.5上配置安装Clash并设置透明代理的方法。
Clash已删库,为了保证后续正常使用,本文使用Clash Meta(mihomo)内核,该内核还在持续更新当中。
前提条件
按正常步骤配置好防火墙,包括DNS、DHCP等,保证防火墙后面的客户端可以正访问网络。
文件准备
本文使用的脚本来源于github,去除了订阅转换等一些不必要的功能。在本群管理程序员帮助下,对pfSense和OPNsense进行了适配。
下载文末附件并解压缩。
1、修改Clash配置文件
从支持Clash Meta核心的客户端程序(如:ClashN、Clash Verge等)导出所使用机场的配置文件,将socks-port: 7891、redir-port: 7892、mixed-port: 7893等删除,如下面所示:
port: 7890 allow-lan: true mode: rule log-level: info unified-delay: true global-client-fingerprint: chrome external-controller: '0.0.0.0:9090' secret: 123456 external-ui: /root/clash/dashboard/public dns: enable: true listen: :5353 ipv6: true enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 default-nameserver: - 223.5.5.5 - 8.8.8.8 nameserver: - https://dns.alidns.com/dns-query - https://doh.pub/dns-query fallback: - https://1.0.0.1/dns-query - tls://dns.google fallback-filter: geoip: true geoip-code: CN ipcidr: - 240.0.0.0/4 proxies: .......
allow-lan参数设置为true,以允许防火墙的客户端使用代理。为了使用Clash面板,需要设置面板访问地址、安全密钥和路径。DNS监听端口修改为其他端口,避免与防火墙DNS解析器或转发器使用的默认端口53冲突。
将导出的文件改名为config.yaml,放入下载附件的conf目录。
如果有海外VPS,推荐使用Sing-box一键四协议共存脚本,能直接提供clash.meta核心使用的Clash配置文件。
2、上传文件
将附件clash目录整体复制到防火墙root目录下。
3、安装脚本运行环境
进入shell环境,分别安装bash、sudo、zsh程序。
pkg install bash pkg install sudo
zsh需要安装对应平台的版本:
OPNsense 24.1.6平台为freebsd 13.2,可以在仪表大厅的系统信息上查看版本。
执行以下命令安装zsh程序:
pkg add https://pkg.freebsd.org/FreeBSD:13:amd64/latest/All/zsh-5.9_4.pkg
启动脚本
进入程序运行目录:
cd clash
运行以下命令启动Clash(如果提示命令出错,请重启一下防火墙让安装的程序命令生效。):
sudo bash start.sh
程序运行日志存储在/root/clash/conf/clash.log文件中,查看日志文件可以帮助了解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
5、实时调试( 必须先停止clash):
/root/clash/bin/clash -f /root/clash/conf/config.yaml -d /root/clash/conf
注意:脚本运行一次后,已具备开机自启功能,无需再添加其他开机启动命令。
管理面板
管理面板访问地址:http://LAN地址:9090/ui,默认安全密钥为123456,可以修改/root/clash/.env的默认值来更改密钥。如果留空,系统会在脚本每一次运行时自动生成复杂的密钥。
测试代理
在客户端系统上,打开代理服务器选项,代理地址输入OPNsense的LAN地址,端口7890。
访问google或youtube,测试代理是否正常。可以打开ipaddress.my网站查看代理地址。
透明代理
设置Web代理来实现透明代理,客户端无需任何设置即可访问特定网站。
添加内部CA
https透明代理需要CA,导航到系统> 证书>发行菜单,单击添加一个内部CA,输入各项信息,如下图所示:
启用Web代理
转到服务>Web代理>管理,选中启用代理选项。其他选项根据需要设置,尽量使用默认选项。
设置父代理
转到服务>Web代理>管理,单击代理常规设置下拉菜单,找到父代理设置,输入Clash代理信息,主机127.0.0.1,端口7890,其他选项留空。
如果启用了zerotier服务,或者需要访问本地服务器,不需要通过代理访问,可以在本地IP域或本地IP中输入需要排除的项,如下图所示:
设置代理缓存
转到服务>Web代理>管理,单击代理常规设置下拉菜单,找到代理缓存设置。为了减少不可预知因素导致代理失效,建议禁用本地缓存。如下图所示,将缓存大小设置为0。
设置正向代理
转到服务>Web代理>管理,单击正向代理下拉菜单,设置正向代理选项,代理接口选LAN,选中启用透明HTTP代理和启用SSL检查,选中仅记录SNI信息,CA选中前面新建的SSL,选中允许接口子网选项,其他选项默认即可。
根据上图中箭头所指位置,添加http和https代理的防火墙规则。添加完成以后如下图所示:
检查测试
客户端取消代理服务器设置,访问google、youtube等网站,检查透明代理设置是否正确。
经实际测试,与直接代理相比,使用Web代理功能对速度的影响基本可以忽略。根据防火墙硬件配置的不同,会稍微增加CPU 5%-10%的使用率。
附件:点我下载
相关文章:
我的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
…
——————–
解决了,这里不用改。
注意上边allow-lan: false 改成allow-lan:true
OK
外网访问clash的socks代理怎么访问,能出一期教程吗?
设置透明代理后,无线ap无法访问网络
有线能访问,无线不能访问,找找无线配置的问题。
配置了透明代理之后内网的设备可以正常透明代理上网,但是防火墙本身不走代理访问网站,博主知道该咋设置吗?
目前还没找到办法,也没有这种需求。
如果从clash复制出来config后又自己修改过的话,一定要记得不能有空行!!!!这个插件估计文件检查比较严格,clash客户端或者直接运行clash core的话,config带有空行不影响运行,但是这个插件不行。今天换成clash premium core,一度以为是不支持,结果就是单纯我的config有空行。。。。
clash.meta内核没这么讲究。
2023-12-18更新:clash已删库,现在改用Clash meta(mihomo)内核来实现,不用安装插件,直接手动设置即可,开机或重启自动启动代理。
I can’t find the clash.meta kerne and also Clash script program what do you name it? system proxy? i hope there a tutorial for this on youtube it will be great to have this.
😔