Top Related Projects
Quick Overview
ShellCrash is a lightweight and easy-to-use Clash client for OpenWrt, Merlin, and other Linux systems. It provides a web-based interface for managing Clash configurations and proxies, making it accessible for users who prefer a graphical interface over command-line tools.
Pros
- Simple installation process with a one-click script
- Web-based interface for easy management of Clash configurations
- Supports various Linux systems, including OpenWrt and Merlin
- Regular updates and active community support
Cons
- Limited documentation, especially for advanced configurations
- May require some technical knowledge to troubleshoot issues
- Potential security risks if not properly configured
- Performance may vary depending on the hardware and network conditions
Getting Started
To install ShellCrash, run the following command in your terminal:
wget -O /tmp/install.sh https://raw.githubusercontent.com/juewuy/ShellCrash/master/install.sh && sh /tmp/install.sh
Follow the on-screen prompts to complete the installation. Once installed, access the web interface by navigating to http://your-device-ip:9999 in your web browser.
To update ShellCrash, run:
clash
And select the update option from the menu.
Competitor Comparisons
A Clash Client For OpenWrt
Pros of OpenClash
- More comprehensive feature set, including advanced routing and policy groups
- Better integration with OpenWrt systems
- Larger and more active community, leading to frequent updates and improvements
Cons of OpenClash
- Higher resource consumption, which may impact performance on low-end devices
- Steeper learning curve due to more complex configuration options
- Potentially less stable on non-OpenWrt systems
Code Comparison
OpenClash configuration example:
proxy-groups:
- name: "Auto"
type: url-test
proxies:
- "Server1"
- "Server2"
url: 'http://www.gstatic.com/generate_204'
interval: 300
ShellCrash configuration example:
config_group_name="Auto"
config_group_type="url-test"
config_group_proxies="Server1,Server2"
config_group_url="http://www.gstatic.com/generate_204"
config_group_interval=300
While both projects aim to provide Clash functionality on embedded devices, OpenClash offers a more feature-rich experience at the cost of increased complexity and resource usage. ShellCrash, on the other hand, focuses on simplicity and broader compatibility, making it potentially more suitable for users with limited hardware or those seeking a straightforward setup process.
A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.
Pros of mihomo
- More active development with frequent updates
- Broader platform support, including mobile devices
- Enhanced performance and stability for handling complex network configurations
Cons of mihomo
- Steeper learning curve for new users
- Less comprehensive documentation compared to ShellCrash
Code Comparison
ShellCrash:
#!/bin/sh
# ShellCrash configuration script
crash_dir="/etc/shellcrash"
config_file="$crash_dir/config.yaml"
mihomo:
package main
import (
"github.com/Dreamacro/clash/constant"
"github.com/Dreamacro/clash/hub/executor"
)
Key Differences
- ShellCrash is primarily a shell-based implementation, making it easier to deploy on various systems with minimal dependencies
- mihomo is written in Go, offering better performance and cross-platform compatibility
- ShellCrash focuses on simplicity and ease of use, while mihomo provides more advanced features and customization options
Use Cases
- ShellCrash: Ideal for users who prefer a lightweight, script-based solution and have simpler networking needs
- mihomo: Better suited for power users and those requiring advanced traffic routing capabilities across multiple platforms
Community and Support
Both projects have active communities, but mihomo tends to have more frequent updates and a larger user base, potentially leading to faster issue resolution and feature development.
Yet Another Clash Dashboard
Pros of yacd
- Focused on providing a clean, modern web dashboard for Clash
- Lightweight and easy to integrate into existing Clash setups
- Actively maintained with frequent updates and bug fixes
Cons of yacd
- Limited to Clash configuration and monitoring
- Requires a separate Clash core to function
- Less comprehensive system-wide network management features
Code comparison
yacd (React component):
const ConnectionItem = ({ connection }) => (
<div className="connection-item">
<span>{connection.host}</span>
<span>{connection.chains.join(' > ')}</span>
<span>{formatTraffic(connection.upload + connection.download)}</span>
</div>
);
ShellCrash (Shell script):
start_clash() {
if [ "$mix_port" -ne 7890 ]; then
sed -i "s/7890/$mix_port/g" $CFG_PATH
fi
$clash_bin -d $clash_dir -f $CFG_PATH >/dev/null 2>&1 &
clash_pid=$!
}
Summary
yacd is a specialized web dashboard for Clash, offering a modern interface for configuration and monitoring. ShellCrash, on the other hand, is a more comprehensive network management tool that includes Clash functionality along with additional features for system-wide network control. While yacd excels in its focused approach and clean design, ShellCrash provides a broader range of networking capabilities and system integration.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ShellCrash
A powerful script tool for the convenient deployment and management of mihomo/sing-box kernels in Shell environments.
ç®ä½ä¸æ | English
:rocket: Core Features
- Multi-Kernel Support: Easily manage and switch between mihomo and sing-box kernels directly within the Shell environment.
- Flexible Configuration Management: Supports online import of subscription links and configuration files to simplify the setup process.
- Automated Tasks: Configure scheduled tasks for automatic updates of configuration files and rules.
- Graphical Dashboard: Support for online installation and use of local Web Dashboards to intuitively manage built-in rules and traffic.
- Multiple Operation Modes: Supports switching between various traffic forwarding modes, including Router mode and Local mode.
- One-Click Maintenance: Built-in online update functionality to keep the script and features up to date.
:computer: Device Support
ShellCrash is designed to be compatible with the vast majority of network devices based on the Linux kernel:
- Router Devices: Supports various firmwares based on OpenWrt or its derivatives (e.g., Xiaomi, Netgear etc.).
- Linux Servers: Supports devices running standard Linux/GNU distributions (e.g., Debian, CentOS, Armbian, Ubuntu, etc.).
- Third-Party Firmware: Compatible with Padavan (Conservative Mode), Pandora, and ASUS/Merlin firmware.
- Other Devices: Compatible with other devices based on Linux/GNU or Linux/busybox.
- Dockerï¼Compatible with Docker environments (e.g., Synology, PVE, etc.).
For additional device support, please submit an Issue or provide feedback in the Telegram Group (please include the device model and the output of the
uname -acommand).
:hammer_and_wrench: Installation Guide
[!TIP] If you encounter connection failures or SSL-related issues, please try switching to an alternative installation mirror.
Prerequisites
- Ensure the device has SSH enabled and Root privileges obtained (Linux systems with a GUI can use the terminal directly).
- Connect to the device using an SSH tool (such as PuTTY, JuiceSSH, or the system's built-in terminal).
:penguin: Standard Linux Device Installation
[!IMPORTANT] Please perform the installation as the root user.
Install via wget (jsDelivr CDN source)
export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
&& wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
&& bash /tmp/install.sh \
&& . /etc/profile &> /dev/null
Or install via curl (Author's private source)
export url='https://gh.jwsc.eu.org/dev' && bash -c "$(curl -kfsSl $url/install_en.sh)" && . /etc/profile &> /dev/null
:satellite: Router Device Installation
Installation via curl:
GitHub Source (Recommended for overseas environments or environments with proxy access)
export url='https://raw.githubusercontent.com/juewuy/ShellCrash/dev' \
&& sh -c "$(curl -kfsSl $url/install_en.sh)" \
&& . /etc/profile &> /dev/null
Or jsDelivr CDN source
export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
&& sh -c "$(curl -kfsSl $url/install_en.sh)" \
&& . /etc/profile &> /dev/null
Or Author's private source
export url='https://gh.jwsc.eu.org/dev' && sh -c "$(curl -kfsSl $url/install_en.sh)" && . /etc/profile &> /dev/null
Installation via wget:
GitHub Source (Recommended for overseas environments or environments with proxy access)
export url='https://raw.githubusercontent.com/juewuy/ShellCrash/dev' \
&& wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
&& sh /tmp/install.sh \
&& . /etc/profile &> /dev/null
Or jsDelivr CDN source
export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
&& wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
&& sh /tmp/install.sh \
&& . /etc/profile &> /dev/null
:pager: Installation for Legacy Devices with Older wget Versions
Author's private HTTP beta source
export url='http://t.jwsc.eu.org' \
&& wget -q -O /tmp/install.sh $url/install_en.sh \
&& sh /tmp/install.sh \
&& . /etc/profile &> /dev/null
:cloud: Virtual Machines
- Alpine Linux VM: It is highly recommended to use an Alpine image for optimal compatibility.
# Install necessary dependencies
apk add --no-cache wget openrc ca-certificates tzdata nftables iproute2 dcron
# Execute installation command
export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
&& wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
&& sh /tmp/install.sh \
&& . /etc/profile &> /dev/null
:whale: Docker
Please visit the official Docker image:
:package: Local Installation
If online installation is not possible, please follow the guide for local installation:
:book: Usage Instructions
After installation, enter the following commands in the terminal to launch the management interface:
crash # Launch the interactive script menu
crash -h # View the list of command help
Running Dependencies
| Component | Necessity | Description |
|---|---|---|
| curl / wget | Mandatory | Required for node saving, online installation, and update operations. |
| iptables / nftables | Critical | Without these, the script can only run in Pure Mode. |
| crontab | Low | Required for scheduled tasks; otherwise, they will not function. |
| net-tools | Very Low | Used for automatic port occupancy detection. |
| ubus / iproute-doc | Very Low | Used for automatically obtaining the local Host address. |
:link: Related Links
- FAQ: Juewuy's Blog
- Changelog: Release History
- Discussion: Telegram Group
:scroll: License
This project is licensed under the GNU General Public License v3.0.
Top Related Projects
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot