OpenClash adalah plugin yang digunakan di OpenWRT untuk mengelola dan menjalankan Clash. Openclash digunakan untuk mengarahkan atau membypass lalu lintas jaringan melalui berbagai server proxy seperti Shadowsocks, Vmess, Socks5, dan HTTP(S).
Bagi Anda pengguna Openclash, tentu pernah merasakan disconnect ketika openclash digunakan. Unyuk itu pada kesempatan kali ini, Admin akan membagikan cara atau trik agar openclash tidak sering DC atau disconnect.
Solusi yang bisa Anda gunakan adalah membuat bash script auto restart saat koneksi internet terputus. Script ini akan mendeteksi koneksi internet di Openwrt, Jika koneksi internet aman maka tidak ada hal yang dilakukan, tapi jika koneksi internet null atau terputus, maka script ini akan merestart service openclash secara otomatis. Script ini dijalankan menggunakan cronjob setiap 1 menit sekali dan akan menghasilkan log yang bisa dipantau atau dianalisa.
Baca Juga : Cara Mengamankan Server Ubuntu dari Peretas
Pertama masuk ke openwrt Anda menggunakan SSH. Untuk login ke OpenWRT menggunakan SSH, bisa menggunakan aplikasi Putty, Terminal CMD, atau Termius.
ssh [email protected]
Kemudian buat Script OpenClash Auto Restart
nano /usr/bin/check_connection.sh
Masukkan Baris Script berikut :
#!/bin/sh
# Server untuk di-ping
server="google.com"
# Lokasi file log
logfile="/root/logs/openclash_monitor.log"
# Waktu saat pengecekan
current_time=$(date "+%Y-%m-%d %H:%M:%S")
# Cek apakah log sudah dari hari sebelumnya
log_date=$(date -r $logfile "+%Y-%m-%d" 2>/dev/null)
current_date=$(date "+%Y-%m-%d")
# Jika log tanggalnya berbeda, hapus log lama
if [ "$log_date" != "$current_date" ]; then
> $logfile
echo "$current_time - Log direset untuk hari ini" >> $logfile
fi
# Jumlah ping yang dilakukan (dengan timeout 5 detik per ping)
if ping -c 1 -W 5 $server >/dev/null; then
echo "$current_time - Koneksi OK" >> $logfile
else
echo "$current_time - Koneksi terputus. Restarting openclash..." >> $logfile
/etc/init.d/openclash restart
echo "$current_time - openclash restarted" >> $logfile
fi
Beri izin eksekusi untuk scriptnya.
chmod +x /usr/bin/check_connection.sh
Terakhir buat folder untuk menyimpan log. Tujuanya agar script bisa dipantau dan dianalisa.
mkdir logs
Langkah berikutnya adalah kita akan menjalankan script secara otomatis setiap 1 menit sekali. Untuk menjalankan script secara otomatis, kita akan menggunakan cronjob.
export VISUAL=nano; crontab -e
Kemudian Masukkan baris Cron Berikut :
* * * * * /usr/bin/check_connection.sh
Baris perintah cron di atas akan menjalankan script secara otomatis setiap 1 menit sekali.
Setelah cronjob selesai dibuat, langkah selanjutnya adalah memeriksa log. Tujuanya untuk memastikan bahwa script yang kita buat berjalan dengan lancar.
cd logs
tail -f openclash_monitor.log
Akan tampil seperti ini :
Jika log tampil seperti di gambar di atas, artinya script berhasil berjalan dengan lancar. Log ini hanya akan menyimpan data selama 1 hari saja, jadi log kemarin akan dihapus seacara otomatis. Hal ini bertujuan untuk menghemat penggunaan disk storage.
Dengan menggunakan script autorestart ini, Anda dapat memastikan bahwa layanan OpenClash selalu berjalan optimal dan dapat pulih secara otomatis saat terjadi gangguan koneksi. Ini memberikan solusi praktis yang mengurangi downtime dan meningkatkan keandalan jaringan di OpenWRT, sehingga koneksi internet tetap stabil tanpa perlu intervensi manual.
Github : AwanServers