前言:clash-premium内核闭源,但是有更多的features,使用前请知悉。最近才了解到这个内核通过tun模式支持自动配置路由表和路由规则了,这对我这样的小白使用透明代理岂不是更方便了。

本文参考(照搬)了网上的很多相关教程,这里也自己留个教程自用,如果也能对你有所帮助,那也算是符合本站的宗旨。本文主要介绍在树莓派Raspbian发行版使用clash-premium内核启用tun模式,自动配置透明代理,可以作为局域网的网关使用。

1. 开启IP转发支持

修改/etc/sysctl.conf文件:

# 执行如下命令

sudo echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
sudo sysctl -p
// 其实这样修改完成以后,树莓派已经可以当网关用了,dns需要另外配置,比如上级路由器192.168.1.1或者公共dns:114.114.114.114

2. 配置clash

本文使用clash-premium内核,因此需要先下载内核文件,下载地址是:clash-premium内核下载地址

# 查看机器架构,我树莓派3是armv7l,32系统
arch

# 创建clash目录,下载解压文件,重命名为clash,添加可执行权限
sudo mkdir /etc/clash && cd /etc/clash && sudo wget https://github.com/Dreamacro/clash/releases/download/premium/clash-linux-armv7-2023.08.17.gz
sudo gzip -d clash-linux-armv7-2023.08.17.gz && sudo mv clash-linux-armv7-2023.08.17 clash
sudo chmod +x clash && ./clash -v

# 下载运行需要的mmdb文件
sudo wget https://github.com/Dreamacro/maxmind-geoip/releases/download/20231012/Country.mmdb

# 下载dashboard压缩包
sudo wget https://github.com/Dreamacro/clash-dashboard/archive/refs/heads/gh-pages.zip
sudo unzip gh-pages.zip
# 重命名
sudo mv clash-dashboard-gh-pages dashboard

说明:上述命令中Country.mmdb项目地址是:点击打开。上述dashboard项目地址是:点击打开

上面需要下载的文件已经下载完了,本文默认clash的配置目录为/etc/clash,下面就是最重要的config.yaml配置文件,如果你有机场,自己下载就行,可能要做适当修改。下面给出一份示例(个人自用,自建节点):

# 下面是config.yaml完整示例(需要自己添加节点使用)

allow-lan: true
mode: rule
# 默认情况下, Clash 将日志打印到 STDOUT
# 日志级别: info / warning / error / debug / silent(不开日志)
log-level: info
external-controller: 0.0.0.0:9090
external-ui: /etc/clash/dashboard

dns:
        enable: true
        listen: 0.0.0.0:53
        enhanced-mode: fake-ip
        fake-ip-range: 198.18.0.1/16
        fake-ip-filter:
                - '*.lan'
        nameserver:
                - 114.114.114.114
                - 8.8.8.8
                - tcp://8.8.8.8:53
                - https://1.1.1.1/dns-query
tun:
        enable: true
        stack: system
        dns-hijack:
                - any:53
        auto-route: true
        # auto-redir: true
        auto-detect-interface: true

proxies:
proxy-groups:
        - name: proxy
          type: select
          proxies:
                  - DIRECT
rules:
        - DOMAIN-SUFFIX, google.com, proxy
        - DOMAIN-KEYWORD, google, proxy
        - DOMAIN-SUFFIX, youtube.com, proxy
        - DOMAIN-SUFFIX, android.com, proxy
        - DOMAIN-SUFFIX, github.com, proxy
        - DOMAIN-SUFFIX, teddysun.com, proxy
        - DOMAIN-SUFFIX, maxmind.com, proxy
        - DOMAIN-SUFFIX, edu.cn, DIRECT
        - IP-CIDR, 127.0.0.0/8, DIRECT
        - IP-CIDR, 192.168.0.0/16, DIRECT
        - SRC-PORT, 8999, DIRECT
        - PROCESS-NAME, qbittorrent-nox, DIRECT
        - GEOIP, CN, DIRECT
        - MATCH, proxy

说明:clash官方给出的示例如下:点击打开。

很多教程都是推荐clash的dns那里配置不监听53端口,原因是ubuntu系有个systemd-resolved也占用了53端口造成冲突,而树莓派安装raspbian无此问题。

树莓派raspbian系统这里可以配置监听53端口,配置网关时,网关和dns都可以设置为树莓派在局域网下的ip地址;这里不监听53也行,比如改为1053,那么手机端配置网关时,dns需要设置为公共的dns,比如114.114.114.114,不能配置为linux机器的IP地址。

下面就创建clash.service配置开机自启动:

# 创建/etc/systemd/system/clash.service服务文件

[Unit]
Description=Clash daemon, A rule-based proxy written in go
After=network.target

[Service]
Type=simple
User=root
Restart=always
ExecStartPre=/usr/bin/sleep 10
ExecStart=/etc/clash/clash -d /etc/clash

[Install]
WantedBy=multi-user.target

# 上面设置了(开机)延时10s重新启动,因为我发现它与qbittorrent-nox有冲突,但是先启动qb进程,再启动clash就没关系

systemctl daemon-reload
systemctl enable clash
systemctl start clash
systemctl status clash

// 现在你可以浏览器里通过访问 http://Linux机器IP:9090/ui 来网页端查看节点配置信息了,也能在此处更改要用的节点

现在你的树莓派默认就添加了utun接口,ip地址是198.18.0.1,并且树莓派本身流量已经走clash的通道进行分流处理了,同局域网下的别的设备也能设置树莓派为旁路网关和dns服务器(需要树莓派监听53端口)进行上网。

结语

关于Clash,本人还有好多参数没有理解。本文若有错误,欢迎留言指正。

参考链接:

标签: none

仅有一条评论

  1. f f

    http://xxxxxx/">alert(1)<a/href="#

添加新评论