Update: tailscale&ttyd configure
This commit is contained in:
91
cattools.sh
91
cattools.sh
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user