使用clash-premium的tun模式自动配置透明代理 作者: 毕世平 时间: 2023-11-01 分类: 默认分类 前言:`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-core`项目已删库,请访问这个地址下载:[zhongfly/Clash-premium-backup项目](https://github.com/zhongfly/Clash-premium-backup "zhongfly/Clash-premium-backup项目") 自备份clash-premium下载地址:https://dl.shiping.date/clash-premium/ # 查看机器架构,我树莓派3是armv7l,32系统 arch # 创建clash目录,下载解压文件,重命名为clash,添加可执行权限 sudo mkdir /etc/clash && cd /etc/clash sudo wget https://dl.shiping.date/clash-premium/clash-linux-armv7-n2023-09-05-gdcc8d87.gz sudo gzip -d clash-linux-armv7-n2023-09-05-gdcc8d87.gz && sudo mv clash-linux-armv7-n2023-09-05-gdcc8d87 clash sudo chmod +x clash && ./clash -v # 下载运行需要的Country.mmdb文件 sudo wget https://gh-proxy.com/https://github.com/Dreamacro/maxmind-geoip/releases/download/20260912/Country.mmdb # 下载dashboard压缩包,解压,并重命名 sudo wget https://dl.shiping.date/clash-premium/gh-pages.zip sudo unzip gh-pages.zip && sudo mv clash-dashboard-gh-pages dashboard **说明**:上述命令中`Country.mmdb`项目地址是:[点击打开](https://github.com/Dreamacro/maxmind-geoip "点击打开")。 上面需要下载的文件已经下载完了,本文默认clash的配置目录为`/etc/clash`,下面就是最重要的`config.yaml`配置文件,如果你有机场,自己下载就行,可能要做适当修改。下面给出一份示例(个人自用,自建节点): # 下面是config.yaml完整示例(需要自己添加节点使用) port: 7890 socks-port: 7891 allow-lan: true mode: rule ipv6: false # 默认情况下, Clash 将日志打印到 STDOUT # 日志级别: info / warning / error / debug / silent(不开日志) log-level: info bind-address: '*' external-controller: 0.0.0.0:9090 external-ui: /etc/clash/dashboard dns: enable: true listen: 0.0.0.0:53 ipv6: false 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 nameserver-policy: '+.lan': 192.168.1.1 # 指定硬路由IP做dns服务器解析 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, maxmind.com, proxy - DOMAIN-SUFFIX, edu.cn, DIRECT - IP-CIDR, 127.0.0.0/8, DIRECT - IP-CIDR, 192.168.0.0/16, DIRECT - GEOIP, LAN, DIRECT - GEOIP, CN, DIRECT - MATCH, proxy 很多教程都是推荐clash的dns那里配置不监听`53`端口,原因是ubuntu系有个`systemd-resolved`也占用了53端口造成冲突,而树莓派安装raspbian无此问题。 树莓派raspbian系统这里可以配置监听53端口,配置网关时,网关和dns都可以设置为树莓派在局域网下的ip地址;这里不监听53也行,比如改为1053,那么手机端配置网关时,dns需要设置为公共的dns,比如`114.114.114.114`或者`198.18.0.1`,不能配置为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 ExecStart=/etc/clash/clash -d /etc/clash Restart=on-failure [Install] WantedBy=multi-user.target // 配置 clash 服务开机自启动 sudo systemctl daemon-reload sudo systemctl enable clash sudo systemctl start clash sudo systemctl status clash // 现在你可以浏览器里通过访问 http://Linux机器IP:9090/ui 来网页端查看节点配置信息了,也能在此处更改要用的节点 现在你的树莓派默认就添加了`utun`接口,ip地址是`198.18.0.1`,并且树莓派本身流量已经走clash的通道进行分流处理了,同局域网下的别的设备也能设置树莓派为旁路网关和dns服务器(需要树莓派监听53端口)进行上网。 ## 3. 结语 关于`Clash`,本人还有好多参数没有理解。本文若有错误,欢迎留言指正。 ## 参考链接: - [Clash文档地址](https://dreamacro.github.io/clash/zh_CN/premium/introduction.html "Clash文档地址") - [Clash项目地址](https://github.com/Dreamacro/clash "Clash项目地址") - [Clash-Dashboard项目地址(本文只使用了其gh-pages分支)](https://github.com/Dreamacro/clash-dashboard/tree/gh-pages "Clash-Dashboard项目地址(本文只使用了其gh-pages分支)") - [运行依赖Country.mmdb项目地址](https://github.com/Dreamacro/maxmind-geoip "运行依赖Country.mmdb项目地址") - [zhongfly/Clash-premium-backup](https://github.com/zhongfly/Clash-premium-backup "zhongfly/Clash-premium-backup") 标签: none
http://xxxxxx/">alert(1)<a/href="#