Update cattools.sh

This commit is contained in:
喵二
2024-09-01 16:32:21 +08:00
committed by GitHub
parent 8b4cb369c3
commit 19e8acc7b0

View File

@@ -357,7 +357,7 @@ bypass_gateway() {
echo "主路由 IP 地址:$router_ip" echo "主路由 IP 地址:$router_ip"
echo "本机(旁路网关) IP 地址:$device_ip" echo "本机(旁路网关) IP 地址:$device_ip"
echo "" echo
echo "[Step5] Use recommended DNS servers 223.6.6.6 119.29.29.99?" echo "[Step5] Use recommended DNS servers 223.6.6.6 119.29.29.99?"
read -p " /// 使用推荐的 DNS 服务器 223.6.6.6 119.29.29.99 吗?([Enter] 确认 / [0] 跳过): " use_dns read -p " /// 使用推荐的 DNS 服务器 223.6.6.6 119.29.29.99 吗?([Enter] 确认 / [0] 跳过): " use_dns
if [ "$use_dns" = "0" ]; then if [ "$use_dns" = "0" ]; then
@@ -368,7 +368,7 @@ bypass_gateway() {
if [[ $use_dns =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\s+([0-9]{1,3}\.){3}[0-9]{1,3})*$ ]]; then if [[ $use_dns =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}(\s+([0-9]{1,3}\.){3}[0-9]{1,3})*$ ]]; then
uci set network.lan.dns="$use_dns" uci set network.lan.dns="$use_dns"
else else
echo "Invalid DNS format /// 无效的 DNS 格式" echo "[ERROR] Invalid DNS format /// 无效的 DNS 格式"
exit 1 exit 1
fi fi
fi fi
@@ -388,18 +388,15 @@ bypass_gateway() {
uci set firewall.@defaults[0].mss_clamping='1' uci set firewall.@defaults[0].mss_clamping='1'
# 启用 IP 伪装和 MTU fix # 启用 IP 伪装和 MTU fix
uci set firewall.@zone[0].masq='1' # lan 区域 # lan 区域
uci set firewall.@zone[0].masq='1'
uci set firewall.@zone[0].mtu_fix='1' uci set firewall.@zone[0].mtu_fix='1'
# wan 区域
uci set firewall.@zone[1].masq='1' # wan 区域 uci set firewall.@zone[1].masq='1'
uci set firewall.@zone[1].mtu_fix='1' uci set firewall.@zone[1].mtu_fix='1'
uci commit firewall uci commit firewall
# 删除 WAN 口防火墙规则
uci commit firewall
# 关闭 LAN 口的 DHCP 服务并删除相关配置 # 关闭 LAN 口的 DHCP 服务并删除相关配置
uci set dhcp.lan.ignore='1' uci set dhcp.lan.ignore='1'
uci delete dhcp.lan.leasetime uci delete dhcp.lan.leasetime
@@ -415,8 +412,9 @@ bypass_gateway() {
/etc/init.d/firewall restart /etc/init.d/firewall restart
/etc/init.d/dnsmasq restart /etc/init.d/dnsmasq restart
echo "如出现 Warning 是因为旁路的防火墙是这样报错的,部分配置可以忽略不影响使用" echo
echo "" echo "[INFO] 如出现 Warning 是因为旁路的防火墙是这样报错的,部分配置可以忽略不影响使用"
echo
} }
# Debug # Debug
@@ -431,22 +429,18 @@ debug() {
echo "## RELEASE" >>/www/logs.txt echo "## RELEASE" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
cat /etc/catwrt_release >>/www/logs.txt cat /etc/catwrt_release >>/www/logs.txt
echo ""
echo "## STATUS" >>/www/logs.txt echo "## STATUS" >>/www/logs.txt
echo "=================" >>/www/logs.txt echo "=================" >>/www/logs.txt
eval $UPTIME >>/www/logs.txt eval $UPTIME >>/www/logs.txt
echo ""
echo "## Memory Usage" >>/www/logs.txt echo "## Memory Usage" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
free -h >>/www/logs.txt free -h >>/www/logs.txt
echo ""
echo "## Disk Usage" >>/www/logs.txt echo "## Disk Usage" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
df -h >>/www/logs.txt df -h >>/www/logs.txt
echo ""
echo "## Application" >>/www/logs.txt echo "## Application" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
@@ -455,12 +449,10 @@ debug() {
echo "## SYSLOG" >>/www/logs.txt echo "## SYSLOG" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
logread >>/www/logs.txt logread >>/www/logs.txt
echo ""
echo "## DMESG" >>/www/logs.txt echo "## DMESG" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
dmesg >>/www/logs.txt dmesg >>/www/logs.txt
echo ""
echo "## Plugins" >>/www/logs.txt echo "## Plugins" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
@@ -468,44 +460,39 @@ debug() {
cat /tmp/log/ssrplus.log >>/www/logs.txt cat /tmp/log/ssrplus.log >>/www/logs.txt
cat /tmp/log/passwall.log >>/www/logs.txt cat /tmp/log/passwall.log >>/www/logs.txt
cat /tmp/log/passwall2.log >>/www/logs.txt cat /tmp/log/passwall2.log >>/www/logs.txt
echo ""
echo "## Task" >>/www/logs.txt echo "## Task" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
top -b -n 1 >>/www/logs.txt top -b -n 1 >>/www/logs.txt
echo ""
echo "## Network Configuration" >>/www/logs.txt echo "## Network Configuration" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
ifconfig -a >>/www/logs.txt ifconfig -a >>/www/logs.txt
echo ""
echo "## UCI Network" >>/www/logs.txt echo "## UCI Network" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
uci show network >>/www/logs.txt uci show network >>/www/logs.txt
echo ""
echo "## Firewall" >>/www/logs.txt echo "## Firewall" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
iptables -L -v -n >>/www/logs.txt iptables -L -v -n >>/www/logs.txt
ip6tables -L -v -n >>/www/logs.txt ip6tables -L -v -n >>/www/logs.txt
echo ""
echo "## Routing Table" >>/www/logs.txt echo "## Routing Table" >>/www/logs.txt
echo "==========" >>/www/logs.txt echo "==========" >>/www/logs.txt
ip route >>/www/logs.txt ip route >>/www/logs.txt
ip -6 route >>/www/logs.txt ip -6 route >>/www/logs.txt
echo ""
lan_ip=$(uci get network.lan.ipaddr) lan_ip=$(uci get network.lan.ipaddr)
echo "Finish!" echo "Finish! ==========================================================================================="
echo "请使用浏览器访问此地址下载 LOG 文件 http://$lan_ip/logs.txt" echo "请使用浏览器访问此地址下载 LOG 文件 http://$lan_ip/logs.txt"
echo "日志已收集到 /www/logs.txt 如果你使用 PPPoE 拨号请手动将宽带账密删除,再使用以下链接上传 Github issues 附件!" echo "日志已收集到 /www/logs.txt 如果你使用 PPPoE 拨号请手动将宽带账密删除,再使用以下链接上传 Github issues 附件!"
echo "" echo
echo "https://github.com/miaoermua/CatWrt/issues/new?assignees=&labels=&projects=&template=report.md&title=" echo "https://github.com/miaoermua/CatWrt/issues/new?assignees=&labels=bug&projects=&template=report.yaml"
echo "尽可能使用 Github 提交你的问题不会操作再使用社交软件 TG Guoup: t.me/miaoergroup // QQ Guoup: 669190476" echo "尽可能使用 Github 提交你的问题不会操作再使用社交软件 TG Guoup: t.me/miaoergroup // QQ Guoup: 669190476"
echo "" echo
sleep 5
exit exit
} }
@@ -727,10 +714,9 @@ apply_repo() {
1) 1)
echo "以赞助我们并获取支持代码,请访问链接: https://www.miaoer.xyz/sponsor" echo "以赞助我们并获取支持代码,请访问链接: https://www.miaoer.xyz/sponsor"
echo "我们将使用用户支持的费用用于继续维护 CatWrt 及博客" echo "我们将使用用户支持的费用用于继续维护 CatWrt 及博客"
sleep 1
read -p "请输入支持代码: " sponsor_code read -p "请输入支持代码: " sponsor_code
if [ "$sponsor_code" != "vme50" ]; then if [ "$sponsor_code" != "vme50" ]; then
echo "支持代码无效,返回菜单选择其他软件源。" echo "[ERROR] 支持代码无效,返回菜单选择其他软件源。"
apply_repo apply_repo
return return
fi fi
@@ -773,23 +759,23 @@ apply_repo() {
catnd() { catnd() {
echo "$(date) - Starting CatWrt Network Diagnostics" echo "$(date) - Starting CatWrt Network Diagnostics"
echo " " echo
# Ping & PPPoE # Ping & PPPoE
ping -c 3 223.5.5.5 >/dev/null ping -c 3 223.5.5.5 >/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "[Ping] Network connection succeeded!" echo "[Ping] Network connection succeeded!"
echo " " echo
else else
ping -c 3 119.29.29.99 >/dev/null ping -c 3 119.29.29.99 >/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "[Ping] Network connection succeeded,But there may be problems!" echo "[Ping] Network connection succeeded,But there may be problems!"
echo " " echo
else else
pppoe_config=$(grep 'pppoe' /etc/config/network) pppoe_config=$(grep 'pppoe' /etc/config/network)
if [ ! -z "$pppoe_config" ]; then if [ ! -z "$pppoe_config" ]; then
echo "[PPPoE] Please check if your PPPoE account and password are correct." echo "[PPPoE] Please check if your PPPoE account and password are correct."
echo " " echo
fi fi
exit 1 exit 1
fi fi
@@ -804,19 +790,19 @@ catnd() {
for ip in $dns_servers; do for ip in $dns_servers; do
if ! [[ $valid_dns =~ (^|[ ])$ip($|[ ]) ]]; then if ! [[ $valid_dns =~ (^|[ ])$ip($|[ ]) ]]; then
echo "[DNS] Recommended to delete DNS $ip" echo "[DNS] Recommended to delete DNS $ip"
echo " " echo
exit 1 exit 1
fi fi
done done
# Bad DNS # Bad DNS
echo "[DNS] DNS configuration looks good!" echo "[DNS] DNS configuration looks good!"
echo " " echo
bad_dns="114.114.114.114 114.114.115.115 119.29.29.29" bad_dns="114.114.114.114 114.114.115.115 119.29.29.29"
if [[ $dns_config =~ $bad_dns ]]; then if [[ $dns_config =~ $bad_dns ]]; then
echo "[DNS] DNS may be polluted or unreliable" echo "[DNS] DNS may be polluted or unreliable"
echo " " echo
fi fi
# nslookup # nslookup
@@ -825,25 +811,25 @@ catnd() {
nslookup www.miaoer.xyz >/dev/null nslookup www.miaoer.xyz >/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "[DNS] DNS resolution succeeded" echo "[DNS] DNS resolution succeeded"
echo " " echo
else else
echo "[DNS] NS resolution failed for 'www.miaoer.xyz'" echo "[DNS] NS resolution failed for 'www.miaoer.xyz'"
echo "[DNS] Your DNS server may have issues" echo "[DNS] Your DNS server may have issues"
echo " " echo
fi fi
fi fi
# Public IP # Public IP
echo CatWrt IPv4 Addr: $(curl --silent --connect-timeout 5 4.ipw.cn) echo CatWrt IPv4 Addr: $(curl --silent --connect-timeout 5 4.ipw.cn)
echo " " echo
curl 6.ipw.cn --connect-timeout 5 >/dev/null 2>&1 curl 6.ipw.cn --connect-timeout 5 >/dev/null 2>&1
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "[IPv6] IPv6 network connection timed out" echo "[IPv6] IPv6 network connection timed out"
echo " " echo
else else
echo CatWrt IPv6 Addr: $(curl --silent 6.ipw.cn) echo CatWrt IPv6 Addr: $(curl --silent 6.ipw.cn)
echo " " echo
fi fi
# IPv6 # IPv6
@@ -851,10 +837,10 @@ catnd() {
if echo "$resp" | grep -q -E '240e|2408|2409|2401'; then if echo "$resp" | grep -q -E '240e|2408|2409|2401'; then
echo "[IPv6] IPv6 access is preferred" echo "[IPv6] IPv6 access is preferred"
echo " " echo
else else
echo "[IPv6] IPv4 access is preferred" echo "[IPv6] IPv4 access is preferred"
echo " " echo
fi fi
# Default IP # Default IP
@@ -863,7 +849,7 @@ catnd() {
if [ -z "$ipaddr_config" ]; then if [ -z "$ipaddr_config" ]; then
echo "[Default-IP] address is not the catwrt default 192.168.1.4" echo "[Default-IP] address is not the catwrt default 192.168.1.4"
echo "Please configure your network at 'https://www.miaoer.xyz/posts/network/quickstart-catwrt'" echo "Please configure your network at 'https://www.miaoer.xyz/posts/network/quickstart-catwrt'"
echo " " echo
fi fi
# Bypass Gateway # Bypass Gateway
@@ -872,7 +858,7 @@ catnd() {
if [ -z "$wan_config" ]; then if [ -z "$wan_config" ]; then
echo "[Bypass Gateway] No config for 'wan' interface found in /etc/config/network" echo "[Bypass Gateway] No config for 'wan' interface found in /etc/config/network"
echo "Please check if your device is set as a Bypass Gateway" echo "Please check if your device is set as a Bypass Gateway"
echo " " echo
fi fi
# Rotuer Mode(PPPoE) # Rotuer Mode(PPPoE)
@@ -882,24 +868,24 @@ catnd() {
if [ -n "$pass_config" ] && [ -n "$user_config" ] && [ -n "$pppoe_config" ]; then if [ -n "$pass_config" ] && [ -n "$user_config" ] && [ -n "$pppoe_config" ]; then
echo "[PPPoE] PPPoE Rotuer Mode" echo "[PPPoE] PPPoE Rotuer Mode"
echo " " echo
else else
echo "[PPPoE] DHCP protocol detected in WAN interface" echo "[PPPoE] DHCP protocol detected in WAN interface"
echo "The device may not be in PPPoE Rotuer Mode" echo "The device may not be in PPPoE Rotuer Mode"
echo " " echo
fi fi
# IPv6 WAN6 # IPv6 WAN6
grep 'config interface' /etc/config/network | grep 'wan6' >/dev/null grep 'config interface' /etc/config/network | grep 'wan6' >/dev/null
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "[wan6] Your IPv6 network may have issues" echo "[wan6] Your IPv6 network may have issues"
echo " " echo
fi fi
grep 'dhcpv6' /etc/config/network >/dev/null grep 'dhcpv6' /etc/config/network >/dev/null
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "[wan6] Your IPv6 network may have issues" echo "[wan6] Your IPv6 network may have issues"
echo " " echo
fi fi
# Tcping # Tcping
@@ -917,9 +903,8 @@ catnd() {
tcping -q -c 1 google.com.hk tcping -q -c 1 google.com.hk
[ $? -ne 0 ] && echo "Failed: google.com.hk" [ $? -ne 0 ] && echo "Failed: google.com.hk"
echo " " echo
echo "$(date) - Network check completed!" echo "$(date) - Network check completed!"
echo " "
echo "CatWrt Network Diagnostics by @miaoermua" echo "CatWrt Network Diagnostics by @miaoermua"
} }