使用clash-premium的tun模式自动配置透明网关
前言: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
,本人还有好多参数没有理解。本文若有错误,欢迎留言指正。
http://xxxxxx/">alert(1)<a/href="#