ShellClash
[中文](README_CN.md) | English
## Function introduction:
~Convenient use in Shell environment through management script [Clash](https://github.com/Dreamacro/clash)
~Support management of [Clash functions](https://lancellc.gitbook.io/clash)
~Support online import [Clash](https://github.com/Dreamacro/clash) supports sharing, subscription and configuration links
~Support configuration timing tasks, support configuration file timing updates
~Support online installation and Use local web panel to manage built-in rules
~Support routing mode, native mode and other mode switching
~Support GNOME, KDE desktop automatic configuration native mode
~Support online update
## Equipment support:
~Support various router devices based on OpenWrt or secondary custom development using OpenWrt
~Support various devices running standard Linux systems (such as Debian/CenOS/Armbian, etc.)
~Compatible with Padavan firmware (conservative mode), Pandora firmware
~Compatible with various types of devices customized and developed using the Linux kernel
——————————
~For more device support, please submit an issue or go to the TG group for feedback (the device name and the device core information returned by running uname -a must be provided)
How to use:
--
~Confirm that the router device has enabled SSH and obtained root privileges (Linux devices with GUI desktops can be installed using their own terminal)
~Use SSH connection tools (such as putty, JuiceSSH, system built-in terminal, etc.) router or Linux device SSH management interface or terminal interface, and switch to the root user
~Confirm that the curl or wget download tool has been installed on the device. If not installed, please [refer to here](https://www.howtoforge.com/install-curl-in-linux) for LInux devices to install curl. For devices based on OpenWrt (Xiaomi official system, Pandora, Gaoke, etc.), please Use the following command to install curl:
```Shell
opkg update && opkg install curl
```
~ Then execute the following installation commands on the SSH interface, and follow the subsequent prompts to complete the installation
##### ~Use curl:
```Shell
#by GitHub
export url='https://raw.githubusercontent.com/juewuy/ShellClash/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
#by jsDelivrCDN
export url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash@master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
```
##### ~Use wget:
```Shell
#by GitHub
export url='https://raw.githubusercontent.com/juewuy/ShellClash/master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh && sh /tmp/install.sh && source /etc/profile &> /dev/null
#By jsDelivrCDN
export url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash@master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh && sh /tmp/install.sh && source /etc/profile &> /dev/null
```
~**Use a low version of wget (prompt not to support https) local installation**:
First clone the project to the local under the window (or [click to download the project source code zip package](https://github.com/juewuy/ShellClash/archive/refs/heads/master.zip) to the local and decompress it)
```Shell
sh git clone https://github.com/juewuy/ShellClash.git
```
Then open /project address/ShellClash/bin/hfs/hfs.exe Click menu-add directory from disk-{find the directory where ShellClash source code is located}-add as real directory Click on the menu-IP address-{choose the actual IP address of your LAN} Click ShellClash-click to copy to clipboard Then use the following command to install in SSH
```Shell
sh export url='Paste the copied address here' && wget -q -O /tmp/install.sh $url/install.sh && sh /tmp/install.sh && source /etc/profile &> /dev/null
```
Later, when updating the version, you need to update the local version library and open the hfs service, and then update in the SSH menu, and then you can build a local server through hfs to realize the function of uploading and updating the yaml configuration file
~**After installation by non-root users**, please execute the following additional commands to read environment variables:
```Shell
source ~/.bashrc &> /dev/null
```
~After installing the management script, execute the following command to **run the management script**
```Shell
clash #normal mode
clash -h #help
clash -u #uninstall
clash -t #test mode
```
~**Install in Docker:**
Use: https://github.com/echvoyager/shellclash_docker
~**Additional dependencies at runtime**:
> Most of the equipment/systems are pre-installed with most of the following dependencies, you can ignore them if there is no impact when you use them.
```Text
bash/ash necessary Cannot install and run scripts when all are missing
curl/wget necessary When all are missing, it cannot be installed and updated online
iptables important Only use pure mode when missing
systemd/rc.common general Only use conservative mode when all are missing
iptables-mod-nat general Cannot use redir mode, mixed mode when missing
ip6tables-mod-nat lower Affects redir mode when missing, mixed mode support for ipv6
crontab lower Cannot enable timing task function when missing
net-tools minimal Cannot detect port occupancy normally when missing
ubus/iproute-doc minimal The host address of the machine cannot be obtained normally when missing
```
## Update log:
### [Click to view](https://github.com/juewuy/ShellClash/releases)
## Exchange feedback:
### [TG Discussion Group](https://t.me/clashfm)
## Related Q&A:
### [See blog for details](https://juewuy.github.io)
## Donate:
Alipay WeChat
#####
## Friendly promotion:
### [Top 8K Airport-Dler](https://dler.best/auth/register?affid=89698)