klash是一个基于规则的路由,可以为多地服务器之间配置特定的连接规则,加快后端业务响应速度。
一、材料准备
- linux客户端,我的系统是centos7,下载的是 klash-linux-amd64-v1.13.0.gz
https://github.com/Dreamacro/klash/releases - windows客户端,我用的是 klash.for.Windows-0.20.17-win.7z
https://github.com/Fndroid/klash_for_windows_pkg/releases - 准备一个klash链接,有的需要转换
https://sub.dler.io/
二、安装步骤
windows端
- 在windows上解压klash.for.Windows-0.20.17-win.7z,直接运行klash for Windows.exe
- 打开Profile标签,在上方输入转换后的链接,点击Download下载。成功后会在下方多出一个项,包含着目标服务器。
- 回到General面板,开启System Proxy的开关,就完成了windows端的配置。之后可以测试一下是否能正常链接。
linux端
- 在linux上合适的位置放置klash-linux-amd64-v1.13.0.gz,,并解压到当前路径
gzip -d klash-linux-amd64-v1.13.0.gz
- 找到刚刚部署在windows端的klash的config文件夹,把里面的内容整个复制到同级目录下。复制后文件夹里应该包含klash-linux-amd64-v1.13.0、Country.mmdb、profiles等文件/文件夹。
有两种方法找到windows上的config路径
第一种:在windows客户端的Profile标签里面,找到刚刚激活的项,鼠标右键点一下,show in folder,之后沿着新打开的文件夹回到上一级就好了
第二种:直接访问C:\Users\你的用户名.config\klash
- 从profiles中找到修改日期最靠后的.yml文件,重命名为config.yaml,并替换掉刚刚目录下的config.yaml文件。这个文件即你的规则列表。
- 运行
./klash -d .
- 另开一个终端,设置
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export no_proxy="localhost, 127.0.0.1"
- 到这一步就成功了。然后可以访问一下目标服务器,看看是否能连接上
- 若要关闭,记得改回来
export http_proxy=""
export https_proxy=""
export no_proxy=""
也可以使用在线可视化网站来简化配置过程
http://klash.razord.top/
三、问题and踩坑
问题:无法连接
可能原因1:订阅连接有误
解决方法1:记得检查一下,我的是要求改变最后的数字才能适配klash的
可能原因2:一些站点在规则里没配置使用Proxy
解决方法2:打开config.yml,寻找rules下面的DOMAIN-SUFFIX
开头的行,后面如果接有DIRECT、Scholar或AdBlock,就把后面那段替换成Proxy,然后重启即可。嫌麻烦的话,我这里提供一个自用的一键替换的正则:查找目标^( \- DOMAIN-SUFFIX.*?\,)(AdBlock)|(DIRECT)|(Scholar)
替换为$1Proxies
可能原因3:没有配置系统Proxy
解决方法3:在当前shell里把上述第5步重新做一下
问题:关闭后无法正常访问
可能原因:没有重置系统Proxy
解决方法:在当前shell里把上述第7步重新做一下