GithubHelp home page GithubHelp logo

clash-for-linux's Introduction

[TOC]

项目介绍

此项目是通过使用开源项目clash作为核心程序,再结合脚本实现简单的代理功能。

主要是为了解决我们在服务器上下载GitHub等一些国外资源速度慢的问题。


使用须知

  • 运行本项目建议使用root用户,或者使用 sudo 提权。
  • 使用过程中如遇到问题,请优先查已有的 issues
  • 在进行issues提交前,请替换提交内容中是敏感信息(例如:订阅地址)。
  • 本项目是基于 clashyacd 进行的配置整合,关于clash、yacd的详细配置请去原项目查看。
  • 此项目不提供任何订阅信息,请自行准备Clash订阅地址。
  • 运行前请手动更改.env文件中的CLASH_URL变量值,否则无法正常运行。
  • 当前在RHEL系列和Debian系列Linux系统中测试过,其他系列可能需要适当修改脚本。
  • 支持 x86_64/aarch64 平台

注意:当你在使用此项目时,遇到任何无法独自解决的问题请优先前往 Issues 寻找解决方法。由于空闲时间有限,后续将不再对Issues中 “已经解答”、“已有解决方案” 的问题进行重复性的回答。


使用教程

下载项目

下载项目

$ git clone https://github.com/wanhebin/clash-for-linux.git

进入到项目目录,编辑.env文件,修改变量CLASH_URL的值。

$ cd clash-for-linux
$ vim .env

注意: .env 文件中的变量 CLASH_SECRET 为自定义 Clash Secret,值为空时,脚本将自动生成随机字符串。


启动程序

直接运行脚本文件start.sh

  • 进入项目目录
$ cd clash-for-linux
  • 运行启动脚本
$ sudo bash start.sh

正在检测订阅地址...
Clash订阅地址可访问!                                      [  OK  ]

正在下载Clash配置文件...
配置文件config.yaml下载成功!                              [  OK  ]

正在启动Clash服务...
服务启动成功!                                             [  OK  ]

Clash Dashboard 访问地址:http://<ip>:9090/ui
Secret:xxxxxxxxxxxxx

请执行以下命令加载环境变量: source /etc/profile.d/clash.sh

请执行以下命令开启系统代理: proxy_on

若要临时关闭系统代理,请执行: proxy_off
$ source /etc/profile.d/clash.sh
$ proxy_on
  • 检查服务端口
$ netstat -tln | grep -E '9090|789.'
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN     
tcp6       0      0 :::7890                 :::*                    LISTEN     
tcp6       0      0 :::7891                 :::*                    LISTEN     
tcp6       0      0 :::7892                 :::*                    LISTEN
  • 检查环境变量
$ env | grep -E 'http_proxy|https_proxy'
http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890

以上步鄹如果正常,说明服务clash程序启动成功,现在就可以体验高速下载github资源了。


重启程序

如果需要对Clash配置进行修改,请修改 conf/config.yaml 文件。然后运行 restart.sh 脚本进行重启。

注意: 重启脚本 restart.sh 不会更新订阅信息。


停止程序

  • 进入项目目录
$ cd clash-for-linux
  • 关闭服务
$ sudo bash shutdown.sh

服务关闭成功,请执行以下命令关闭系统代理:proxy_off
$ proxy_off

然后检查程序端口、进程以及环境变量http_proxy|https_proxy,若都没则说明服务正常关闭。


Clash Dashboard

  • 访问 Clash Dashboard

通过浏览器访问 start.sh 执行成功后输出的地址,例如:http://192.168.0.1:9090/ui

  • 登录管理界面

API Base URL一栏中输入:http://<ip>:9090 ,在Secret(optional)一栏中输入启动成功后输出的Secret。

点击Add并选择刚刚输入的管理界面地址,之后便可在浏览器上进行一些配置。

  • 更多教程

此 Clash Dashboard 使用的是yacd项目,详细使用方法请移步到yacd上查询。


常见问题

  1. 部分Linux系统默认的 shell /bin/sh 被更改为 dash,运行脚本会出现报错(报错内容一般会有 -en [ OK ])。建议使用 bash xxx.sh 运行脚本。

  2. 部分用户在UI界面找不到代理节点,基本上是因为厂商提供的clash配置文件是经过base64编码的,且配置文件格式不符合clash配置标准。

    目前此项目已集成自动识别和转换clash配置文件的功能。如果依然无法使用,则需要通过自建或者第三方平台(不推荐,有泄露风险)对订阅地址转换。

  3. 程序日志中出现error: unsupported rule type RULE-SET报错,解决方法查看官方WIKI

clash-for-linux's People

Contributors

wnlen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

clash-for-linux's Issues

全局代理出现小问题

非常感谢你的工作,对我很有帮助
我在使用过程中发现,在config.yaml设置成global模式,仍然无法代理docker的部分镜像拉取(非官方的镜像拉取),但是可以正常代理其他的上网或者wget和curl命令

一开起来就上传

开起来之后就向几个网站上传流量, 还有俄罗斯IP的,把带宽都占完了

Mistake in README.md

In README.md, the command to clone this repo is:

$ git clone https://github.com/wanhebin/clash-for-linux.git

In fact, it should be

$ git clone https://github.com/wnlen/clash-for-linux.git

与 XRDP 不兼容

系统:Ubuntu 20.04
使用 clash-for-linux 之后,通过 xrdp 连接会闪退。运行 /etc/xrdp/startwm.sh 会报错 /etc/profile.d/clash.sh: Syntax error: "(" unexpected,删除后正常。

x86 架构无法链接 与 无法正确安装总结

#5#8
感觉里面说的有点乱了,指出的问题比较零碎。感觉如果大家只是想科学上网的话,可能只需要一些能够做的尝试的可能性,超级感谢这个自动安装clash的project。的确,我们大家更应该把时间花在重要的事情上,而不是研究怎么翻墙。但是中间还是碰到了一些问题。我是在刚刚装起来ubuntu 22.04上直接跑的,稍微总结下:

  1. curl return value错误导致error checking 被kill了
#curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} $URL | grep '[23][0-9][0-9]' &>/dev/null
curl -o /dev/null -L -k -sS --retry 5 -m 10 --connect-timeout 10 -w "%{http_code}" $URL | grep -E '^[23][0-9]{2}$' &>/dev/null
ReturnStatus=$?
if_success $Text1 $Text2 $ReturnStatus

这里的return value 我是1,然后中间报错是curl 到missing / bad url。但我又确认订阅链接是好的,也改了script看了下$URL也没问题。

解决方案

首先先检查下subscription link是不是对的。subscription link是机场提供的订阅链接,但是对于clash / v2ray / ... 等客户端需要转换下链接,这个链接是需要一个后端支持的,但很多转换的平台后端都挂啦,所以可能要注意检查下转换后的链接是不是ok滴。如果想检查自己的subscription link 有没有用,最简单可以直接在浏览器里粘贴下订阅链接。正常的clash订阅链接应该是能看到以下这样的

port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: :9090
dns:
  enabled: true
  nameserver:
    - .....
  fallback:
    - ....
proxies:
  - {name: 距离下次重置剩余:17 天, server: ....}
  - {name: ...}
 ....
  - {name: 🇺🇸 0.7x 🇺🇸 美国17, server: ...., port: ...., client-fingerprint: chrome, type: vmess, uuid: ...}
  ....

然而我虽然链接是对的,但是还是curl 的return value错了,我也不想研究,直接注释掉这行直接把这行注释掉 if_success $Text1 $Text2 $ReturnStatus,之后config的yaml文件还是可以正常下载的。

  1. X86 无法链接,无法上网 #5

解决方案

这个问题状况跟 #5 一样,但里面的讨论似乎没有直接给解决方案,其实很简单啦,用GUI把 proxy 开起来,注意这张图我是随便偷的,里面填的是127.0.0.17890。他们和 $http_proxy $https_proxy 的值应该是一样的,我没填FTP 和 SOCKS。
image

  1. 服务器启动成功,GUI卡在一个界面(无法访问UI界面) #8

解决方案

这个跟 #8 一样, 解决也很简单啦,重新跑下 start.sh 就行,感觉是哪里被corrupt了,不懂也不想研究hhhh,但我这样就解决咧。

与 XRDP 不兼容

系统:Ubuntu 20.04
使用 clash-for-linux 之后,通过 xrdp 连接会闪退。运行 /etc/xrdp/startwm.sh 会报错 /etc/profile.d/clash.sh: Syntax error: "(" unexpected,删除后正常。

UI

为什么我的UI里面有代理了,但是概览里什么都不显示,我已经使用proxy_on开启代理了,在UI界面了点击了自己想要使用的代理,还需要做其他的操作麻??

Clash订阅地址不可访问!

请问在.env中的clash_url输入了订阅地址后,运行start.sh文件,显示订阅地址不可访问,他是不能用windows上的订阅地址吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.