使用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-premium内核下载地址](https://github.com/Dreamacro/clash/releases/tag/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`项目地址是:[点击打开](https://github.com/Dreamacro/maxmind-geoip "点击打开")。上述`dashboard`项目地址是:[点击打开](https://github.com/Dreamacro/clash-dashboard/tree/gh-pages "点击打开")。 上面需要下载的文件已经下载完了,本文默认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官方给出的示例如下:[点击打开。](https://dreamacro.github.io/clash/zh_CN/configuration/configuration-reference.html "点击打开。") 很多教程都是推荐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`,本人还有好多参数没有理解。本文若有错误,欢迎留言指正。 ## 参考链接: - [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项目地址") - [Linux系统service服务设置延时启动](https://blog.csdn.net/kuangguiyun/article/details/125089060 "Linux系统service服务设置延时启动") 标签: none
http://xxxxxx/">alert(1)<a/href="#