OPNsense配置Clash透明代理

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核心的客户端程序(如:ClashNClash 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冲突。如果想使用OPNsense的Unbound DNS进行DNS查询(阻止黑名单功能),可以将default-nameserver项设置为127.0.0.1。将导出的文件改名为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运行状况。

检查服务端口:

运行以下命令,检查服务端口是否启用

netstat -f inet -na | grep -i LISTEN

如果服务启用正常,会显示以下内容:

root@opn:~ # netstat -f inet -na | grep -i LISTEN
tcp46 0 0 *.7890 *.* LISTEN 
tcp46 0 0 *.9090 *.* LISTEN

启动、停止或重启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 -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-OPNsense(不带订阅转换)

clash-for-OPNsense(带订阅转换)

 

相关文章:

评论

  1. 1510m
    1 年前
    2023-3-18 22:40: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

    ——————–

    • 1510m
      1510m
      1 年前
      2023-3-19 9:03:51

      解决了,这里不用改。
      注意上边allow-lan: false 改成allow-lan:true

      • 鉄血男兒
        博主
        1510m
        1 年前
        2023-3-22 12:23:31

        OK

  2. being
    1 年前
    2023-4-22 12:36:25

    外网访问clash的socks代理怎么访问,能出一期教程吗?

    • being
      being
      1 年前
      2023-4-22 16:45:22

      设置透明代理后,无线ap无法访问网络

      • 鉄血男兒
        博主
        being
        1 年前
        2023-4-23 11:29:57

        有线能访问,无线不能访问,找找无线配置的问题。

  3. luo
    11 月前
    2023-6-23 23:53:36

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

    • 鉄血男兒
      博主
      luo
      11 月前
      2023-6-25 11:01:00

      目前还没找到办法,也没有这种需求。

  4. lim
    7 月前
    2023-10-16 23:53:29

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

    • 鉄血男兒
      博主
      lim
      7 月前
      2023-10-18 22:36:37

      clash.meta内核没这么讲究。

  5. 鉄血男兒
    博主
    5 月前
    2023-12-19 9:59:10

    2023-12-18更新:clash已删库,现在改用Clash meta(mihomo)内核来实现,不用安装插件,直接手动设置即可,开机或重启自动启动代理。

  6. dadada
    2 月前
    2024-4-06 19:53:10

    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.

    • 博主
      dadada
      已编辑
      2 月前
      2024-4-07 11:43:12

      😔

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇