Skip to content
Shawn edited this page Feb 20, 2020 · 45 revisions

Welcome to the Clash-Merlin wiki!

更新说明:

2019-05-20:增加 fake-ip 部分


教程分三部分:

I. Clash的安装;
II. 透明代理的设置;
III. Clash的控制
完成第1步之后,已经可以通过在设备上设置 http/socks 代理来实现扶墙;
完成第2步后,实现透明代理,无需在设备上做任何操作;
第3步,只是提供两个方法方便的去操作调整Clash策略组


0. 一句话教程

虽然接下来废话很多,但总结下来,基本上就是:
把文件准备好-> 放入合适路径->给运行权限,然后重启路由看效果吧


I. Clash的安装

ps. 觉得写的不清楚不精彩的部分,可以参见另外教程(http://bit.ly/2HQfzbh)

1. 文件准备

下载适合你机器的armv版本clash固件,下载完 解压缩 后建议直接改名clash,简化后续操作。。

可以用命令行 uname -a 查看合适的固件版本,但不是很准的样子(68U是 armv5)

1.2 配置文件 -- config.yaml(最新版本建议换成 yaml 后缀)

机场提供,或自己填写,参考:

懒人规则: https://github.com/Hackl0us/SS-Rule-Snippet/blob/master/LAZY_RULES/clash.yml

神机规则:https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml

!!!请确保配置文件无任何问题,并命名config.yaml

做透明代理的话,dns部分 & redir-port & enhance-mode:redir-host/fake-ip 一定要写上。

两种模式:(redir-host 或者 fake-ip)
enhance-mode: fake-ip
关于 fake-ip 的介绍,可以参照Fndroid 大的说明 (http://t.cn/E9yTnM7)
其余操作一样

1.3.Country.mmdb

ip数据库,clash启动时会自动下载安装,但建议提前自备并上传。 链接:http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz
解压并改名 Country.mmdb

2. 瞎操作部分

2.1 上传第一部分的3个文件到路由(Winscp或transmit或者terminal)

  • 建议上传到**/jffs/.koolshare/** 路径下;
  • 运行权限(Putty 或 terminal 连接上路由,命令行输入): chmod +x clash

!!!!如果想直接透明代理的,可以忽略步骤 2.2 & 2.3,直接进入第 II 部分!!!

2.2 Clash启动测试 (可略过)

ssh工具:win上Putty/Xshell,Mac上如termius 等,

  • 可以先尝试 ./clash -d . 确认是否能正常启动clash

正常情况下,能看到clash的启动log(前提是配置文件中log-level不是silent),
但关闭ssh工具之后,此进程也会自动关闭,所以请用下面的命令行

  • 启动./clash -d . &或者 nohup ./clash -d .

此时即使关闭ssh工具,clash仍旧能在后台运行

至此,你已经可以在设备的Wi-Fi设置上,通过手动填写http代理,或者: 通过app的socks代理设置,实现扶墙

2.3 设置路由开机自启 (可略过)

建立 clash.sh 文件, 写入(如有变动,路径改成自己的): start-stop-daemon -S -b -x /jffs/.koolshare/clash -m -p /tmp/clash.pid -- -d /jffs/.koolshare/

放入 /jffs/scripts 目录下, 登陆路由器梅林后台:tools/scripts, 将脚本路径加入自启动项目(WAN):/jffs/scripts/clash.sh

至此,已经实现了clash的路由开机自启动,如需关闭clash进程, start-stop-daemon -K -p /tmp/clash.pid


II. 透明代理设置

懒得写了,看图片吧。


按需复制粘贴,或者直接下载
iptable.sh: https://github.com/KOP-XIAO/Clash-Merlin/blob/master/clash-iptable.sh
firewall-start: https://github.com/KOP-XIAO/Clash-Merlin/blob/master/firewall-start

#Clash  
start-stop-daemon -S -b -x /jffs/.koolshare/clash -m -p /tmp/clash.pid -- -d /jffs/.koolshare/
# ports redirect for clash except port 22 for ssh connection  
iptables -t nat -A PREROUTING -p tcp --dport 22 -j ACCEPT  
#new  
iptables -t nat -N CLASH  
#Lan related  
iptables -t nat -A CLASH -d 192.168.0.0/16 -j RETURN  
#redirect to Clash  
iptables -t nat -A CLASH -p tcp -j REDIRECT --to-ports 8887   
iptables -t nat -A PREROUTING -j CLASH  
# dnsmasq to clash dns
iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.50.1:55  



#!/bin/sh
/jffs/scripts/clash-iptable.sh

运行权限(ssh 工具内输入):

chmod +x /jffs/scripts/clash-iptable.sh  
chmod +x /jffs/scripts/firewall-start

然后, 梅林后台里把 firewall-start 加入自启动(WAN), 之前clash单独的自启动可以丢了。


III. Clash的控制

选择1,Clash官方Dashboard: http://clash.razord.top/#/proxies

选择2,Fndroid 大大的jsbox脚本:https://jsboxbbs.com/d/646-clash

仅限iOS&购买了jsbox软件的用户

操作过程一样,填入路由ip,以及配置文件(第一步中的config.yml)里external controller端口:默认6170

自此,你就可以方便愉快地在此控制Clash地策略组,以及查看log啦

其它参考教程:

Fndroid视频: https://www.youtube.com/watch?v=HnnYl3DFOn0

Raspberry Pi:https://github.com/nkions/clash_raspberrypi

Birkhoff的OpenWrt:https://blog.birkhoff.me/Running-Clash-on-OpenWrt-as-a-transparent-proxy/