/ShellClash

One-click deployment and management of Clash services using Shell scripts in Linux environment

Primary LanguageShell

Clash
ShellClash

中文 | English

Function introduction:

~Convenient use in Shell environment through management script Clash
~Support management of Clash functions
~Support online import 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 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:

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:
#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:
#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 to the local and decompress it)

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

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:

source ~/.bashrc &> /dev/null

~After installing the management script, execute the following command to run the management script

clash #normal mode
clash -h #help
clash -u #uninstall
clash -t #test mode

~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.
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:

Exchange feedback:

Related Q&A:

Donate:

​ Alipay WeChat

Friendly promotion: