Skip to content

⚡ Clash for Lab 是为实验室环境设计的科学上网工具,无需sudo权限,优雅地一键式脚本安装

License

Notifications You must be signed in to change notification settings

SaladDay/clash-for-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

222 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clash for Lab - 实验室科学上网工具

GitHub License GitHub top language

命令行界面 TUI 交互式界面
命令行界面 TUI 交互式界面

项目简介

Clash for Lab 是专为实验室环境设计的科学上网解决方案,基于 clash-for-linux-install 项目进行二次开发。

为什么选择 Clash for Lab?

实验室用户通常面临以下困难:

  • 无 sudo 权限:无法安装系统级服务或修改系统配置
  • 无 GUI 环境:只能通过命令行操作,无法使用图形界面工具
  • 端口冲突频繁:多用户共享服务器,常用端口经常被占用

Clash for Lab 完美解决了这些问题。

核心特性

  • 用户空间运行:无需 sudo 权限,安装到用户目录 ~/tools/mihomo/
  • 智能端口管理:自动检测端口冲突并分配可用端口,支持固定端口模式
  • 局域网访问控制:支持开启/关闭局域网访问,方便多设备共享代理
  • TUI 交互式界面:终端下的图形化管理界面,实时监控流量和连接状态
  • 命令行操作:完全基于命令行,适合无 GUI 环境
  • 多架构支持:适配主流 Linux 发行版(CentOS、Debian、Ubuntu 等)
  • 进程管理:基于 PID 文件管理,无需 systemd 服务
  • 订阅转换:自动使用 subconverter 进行本地订阅转换

⚡️ 提供一种优雅的方式,一键式脚本安装代理工具。

快速开始

环境要求

  • 用户权限:普通用户权限即可,无需 sudo 或 root
  • Shell 支持bashzshfish
  • 代理订阅:需要有效的 Clash 订阅链接

安装步骤

1. 克隆项目

git clone https://ghfast.top/https://github.com/saladday/clash-for-lab.git
cd clash-for-lab
  • 上述克隆命令使用了加速链接。如果无法访问,请尝试其他可用链接,或直接下载压缩包进行安装。

2. 运行安装脚本

bash install.sh

默认会安装在~/tools/mihomo/目录下

  • TODO: 自定义安装路径

安装过程中会:

  • 自动检测系统架构
  • 下载适配的 mihomo 内核
  • 配置用户环境变量
  • 设置命令行别名
  • 检测并分配可用端口

3. 配置订阅

安装完成后,设置你的代理订阅:

clash subscribe https://your-subscription-url

4. 启动代理

clash on

验证安装

# 检查服务状态
clash status

# 测试网络连接
curl -I https://www.google.com

使用教程

1. 基本命令

执行 clash help 查看所有可用命令:

$ clash help
Usage:
    clash COMMAND  [OPTION]
    mihomo COMMAND [OPTION]
    mihomoctl COMMAND [OPTION]

Commands:
    on                      开启代理
    off                     关闭代理
    restart                 重启代理服务
    proxy    [on|off|status]       系统代理环境变量
    port     [status|auto|set]     代理端口模式设置
    ui                      Web 控制台地址
    tui                     TUI 交互式界面
    status                  进程运行状态
    tun      [on|off|status]       Tun 模式 (需要权限)
    lan      [on|off|status]       局域网访问控制
    mixin    [-e|-r]        Mixin 配置文件
    secret   [SECRET]       Web 控制台密钥
    subscribe [URL]         设置或查看订阅地址
    update   [auto|log]     更新订阅配置

2. 使用流程

2.1 启动代理服务

clash on

2.2 检查运行状态

# 查看详细状态信息
clash status

# 输出示例:
# 😼 订阅地址: https://your-subscription-url
# 😼 mihomo 进程状态: 运行中
# 😼 进程 PID: 276368
# 😼 运行时间: 04:53
# 😼 配置文件: /home/fangjingluo/tools/mihomo/runtime.yaml
# 😼 日志文件: /home/fangjingluo/tools/mihomo/logs/mihomo.log
# 😼 代理端口: 54016
# 😼 管理端口: 19090
# 😼 DNS端口: 15353
# 😼 系统代理:开启
# http_proxy: http://127.0.0.1:54016
# socks_proxy:socks5h://127.0.0.1:54016

2.3 停止代理服务

# 停止代理
clash off

3. 高级功能

3.1 固定代理端口

# 查看当前端口模式和端口
clash port status

# 固定代理端口(如 7890),如遇冲突可按提示重新输入或切换自动
clash port set 7890

# 切换回自动分配端口
clash port auto

3.2 局域网访问控制

# 查看局域网访问状态
clash lan status

# 开启局域网访问(允许其他设备通过本机 IP 使用代理)
clash lan on

# 关闭局域网访问(仅本机可用)
clash lan off

开启局域网访问后,其他设备可以通过以下方式使用代理:

  • HTTP 代理:http://your-server-ip:port
  • SOCKS5 代理:socks5://your-server-ip:port

注意:开启局域网访问前,请确保网络环境安全,避免代理被未授权使用。

3.3 TUI 交互式界面

# 启动 TUI 界面
clash tui

TUI 界面基于 clashctl 项目,首次使用时会自动下载。

功能特性:

  • 实时流量监控和图表展示
  • 查看当前连接数和速度统计
  • 切换代理节点和规则
  • 查看日志和配置信息

提示:使用数字键 1-6 切换不同面板,按 q 退出。

3.4 Web 控制台管理

# 查看控制台地址
clash ui

# 设置访问密钥(推荐)
clash secret your-password

# 查看当前密钥
clash secret

通过浏览器访问 Web 控制台可以:

  • 切换代理节点
  • 查看实时日志
  • 监控流量统计
  • 测试节点延迟

3.5 订阅管理

# 设置订阅地址
clash subscribe https://your-subscription-url

# 查看当前订阅
clash subscribe

# 更新订阅配置
clash update

# 设置自动更新(每2天)
clash update auto

# TODO:自定义更新天数

3.6 高级配置

# 编辑自定义配置(Mixin)
clash mixin -e

# 查看运行时配置
clash mixin -r

# 启用 TUN 模式(暂时还不好用,建议别用)
clash tun on

Mixin 配置说明

Mixin 配置文件(~/tools/mihomo/config/mixin.yaml)用于自定义代理行为,支持以下配置:

  • mode:代理模式(rule/global/direct),默认为 rule 模式
  • allow-lan:局域网访问控制
  • external-controller:Web 控制台监听地址
  • 其他高级配置项

通过 Web UI 修改的配置(如代理模式)会在下次启动时保留。

项目结构

clash-for-lab/
├── install.sh              # 主安装脚本
├── uninstall.sh            # 卸载脚本
├── script/                 # 脚本目录
│   ├── clashctl.sh         # 主控制脚本
│   └── common.sh           # 公共函数库
├── resources/              # 资源文件
│   ├── config.yaml         # 默认配置模板
│   ├── mixin.yaml          # Mixin 配置模板
│   ├── Country.mmdb        # GeoIP 数据库
│   └── bin/                # 预编译二进制文件
└── README.md               # 项目文档

安装后目录结构

~/tools/mihomo/             # 用户安装目录
├── bin/                    # 二进制文件
│   ├── mihomo              # 主程序
│   ├── subconverter        # 订阅转换工具
│   ├── yq                  # YAML 处理工具
│   └── clashctl-tui        # TUI 界面 (首次使用时自动下载)
├── config/                 # 配置文件
│   ├── config.yaml         # 主配置文件
│   ├── mixin.yaml          # 自定义配置
│   ├── mihomo.pid          # 进程 ID 文件
│   └── Country.mmdb        # GeoIP 数据库
├── logs/                   # 日志文件
│   └── mihomo.log          # 运行日志
└── ui/                     # Web 控制台文件

常见问题

Q: SSH 断开后代理服务会停止吗?

A: 不会。服务使用 nohup 在后台运行,SSH 断开后仍然保持运行。

Q: 如何在多个终端会话中使用代理?

A: 代理服务是全局的,在任何终端中执行 clash on 后,所有终端都可以使用代理。

Q: 可以同时运行多个实例吗?

A: 不建议。每个用户建议只运行一个实例,避免端口冲突和配置混乱。

Q: 如何更换订阅地址?

A: 使用 clash subscribe new-url 命令更换,系统会自动更新配置。

Q: Web 控制台无法访问怎么办?

A: 检查防火墙设置,确保控制台端口(默认 9090)可以访问。如果是远程访问,需要配置端口转发。

Q: 如何让局域网内其他设备使用代理?

A: 使用 clash lan on 开启局域网访问,然后在其他设备上配置代理服务器为本机 IP 和代理端口。可以通过 clash status 查看当前代理端口。

Q: 代理模式在重启后会恢复默认吗?

A: 不会。通过 Web UI 修改的代理模式(rule/global/direct)会自动保存到 mixin 配置中,重启后会保留您的设置。

致谢

本项目基于 clash-for-linux-install 进行二次开发,感谢原作者的优秀工作。

相关项目

参考资料

许可证

本项目采用与原项目相同的开源许可证。

免责声明

  1. 编写本项目主要目的为学习和研究 Shell 编程,不得将本项目中任何内容用于违反国家/地区/组织等的法律法规或相关规定的其他用途。
  2. 本项目保留随时对免责声明进行补充或更改的权利,直接或间接使用本项目内容的个人或组织,视为接受本项目的特别声明。
  3. 使用本项目所产生的任何后果由使用者自行承担。

Star History

Star History Chart

About

⚡ Clash for Lab 是为实验室环境设计的科学上网工具,无需sudo权限,优雅地一键式脚本安装

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6

Languages