Update: tailscale&ttyd configure

This commit is contained in:
喵二
2024-07-08 14:42:14 +08:00
committed by GitHub
parent 7d900de2c4
commit 070977fc68

View File

@@ -735,6 +735,94 @@ sysupgrade(){
fi fi
} }
# Enhancement MENU
enhancement_menu() {
clear
echo "1. Tailscale 一键配置"
echo "2. Ttyd 配置"
echo "3. 返回主菜单"
echo
read -p "请选择一个选项: " choice
case $choice in
1) configure_tailscale ;;
2) configure_ttyd ;;
3) menu ;;
*) echo "无效选项,请重试。" && enhance_menu ;;
esac
}
configure_tailscale(){
if ! grep -q "catwrt" /etc/opkg/distfeeds.conf && ! ip a | grep -q "192.168.1."; then
echo "请先配置软件源。"
echo "返回主菜单。"
menu
return
fi
if ! opkg list_installed | grep -q "tailscale" || ! opkg list_installed | grep -q "tailscaled"; then
echo "请先安装 tailscale 和 tailscaled 软件包。"
echo "返回主菜单。"
menu
return
fi
subnet=$(ip -o -f inet addr show | awk '/scope global/ {print $4}' | head -n 1)
if [ -z "$subnet" ]; then
echo "无法获取当前子网。"
echo "返回主菜单。"
menu
return
fi
tailscale up --advertise-routes=$subnet --accept-routes --advertise-exit-node
firewall_file="/etc/firewall.user"
rules=("iptables -I FORWARD -i tailscale0 -j ACCEPT"
"iptables -I FORWARD -o tailscale0 -j ACCEPT"
"iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE")
for rule in "${rules[@]}"; do
if ! grep -q "^$rule$" $firewall_file; then
echo $rule >> $firewall_file
fi
done
echo ""
echo "请在浏览器中访问 http://<IP>/cgi-bin/luci/admin/network/iface_add"
echo "新增以下配置:"
echo ""
echo "新接口的名称: tailscale"
echo "新接口的协议: 静态 (默认)"
echo "包括以下接口: 以太网适配器: \"tailscale0\" (tailscale)"
echo "IPv4 地址: 输入 tailscale 中的 CatWrt 地址"
echo "IPv4 子网掩码: 255.0.0.0"
echo "创建/分配防火墙区域: LAN"
echo "保存并应用"
echo "Tailscale 配置部分,剩下的交给你了~"
menu
}
# TTYD
configure_ttyd(){
ttyd_file="/etc/config/ttyd"
original_command="option command '/bin/login'"
modified_command="option command '/bin/login -f root'"
if grep -q "$modified_command" $ttyd_file; then
sed -i "s|$modified_command|$original_command|" $ttyd_file
echo "Ttyd 配置已还原为默认。"
else
sed -i "s|$original_command|$modified_command|" $ttyd_file
echo "Ttyd 配置已修改为 root 登录。"
fi
/etc/init.d/ttyd restart
echo "TTYD 服务已重新启动。"
menu
}
while true; do while true; do
menu menu
read choice read choice
@@ -760,6 +848,9 @@ while true; do
7) 7)
sysupgrade sysupgrade
;; ;;
8)
enhancement_menu
;;
0) 0)
echo "Exiting..." echo "Exiting..."
break break