gongxiangp2/FRP紧急恢复.md
chenpei 383772d39f 🛡️ 服务器安全加固和FRP问题修复
主要更新:
1. FRP服务器诊断与修复
   - 发现并修复文件描述符耗尽问题(65,536 → 1,048,576)
   - 分析并解决用户上传失败问题
   - 确认SSH服务器安全未被攻破

2. 安全防护系统部署
   - 部署IP黑名单防火墙(封禁20+攻击者)
   - 设置SSH端口速率限制
   - 配置自动化定时任务(每小时更新)
   - 安装Fail2ban实时防护系统
   - 添加白名单保护机制

3. 内网访问优化
   - 改进内网检测逻辑
   - 添加网络状态API
   - 优化钉钉登录流程
   - 完善信息补充功能

4. 文档完善
   - FRP服务器诊断修复报告
   - SSH安全评估报告
   - Fail2ban使用指南
   - 文件描述符详解
   - 用户上传失败原因分析
   - 防火墙配置说明
   - 内网检测改进报告

修复的问题:
- ✅ 文件描述符耗尽导致的服务异常
- ✅ 用户上传失败(影响9.5小时)
- ✅ SSH暴力破解攻击(91,299+次)
- ✅ 第三方项目攻击影响
- ✅ 127.0.0.1误封禁问题

部署的安全措施:
- 三重防护体系(Fail2ban + 防火墙 + 强密码)
- 自动化监控和封禁
- 实时攻击拦截(秒级响应)
- 完整的管理和监控工具

测试环境:开发环境
影响范围:服务器安全、用户上传、系统稳定性
当前状态:✅ 所有问题已修复,系统运行正常
2025-11-06 13:42:36 +08:00

4.0 KiB
Raw Blame History

🚨 FRP服务紧急恢复指南

问题说明

FRP客户端配置修改后无法连接,导致:

  • ❌ 网站无法访问(502错误)
  • ❌ SSH穿透断开(2322端口不可用)
  • ❌ 需要通过本地网络恢复

🔧 恢复步骤

方法1:通过本地网络SSH恢复(推荐)

  1. 确保在同一局域网

    • 连接到与NAS相同的网络
  2. SSH登录NAS

# 使用NAS的本地IP(请替换为实际IP,如 192.168.1.x)
ssh root@<NAS本地IP>
  1. 恢复备份配置
# 查看备份文件
ls -lh /mnt/tank/apps/frp/frpc.toml.backup-*

# 恢复最新备份(替换时间戳)
cp /mnt/tank/apps/frp/frpc.toml.backup-20251030-* /mnt/tank/apps/frp/frpc.toml

# 重启FRP容器
docker restart frpc-youyidian

# 等待3秒
sleep 3

# 检查状态
docker ps | grep frpc
docker logs --tail 20 frpc-youyidian
  1. 验证恢复
# 应该能看到 "login to server success"
# 等待10秒后,从外网测试
curl -I https://3d.yydd.ai

方法2:通过TrueNAS Web界面恢复

  1. 访问TrueNAS管理界面

    • 浏览器打开:http://<NAS本地IP>
    • 登录管理账户
  2. 打开Shell

    • 顶部菜单:System → Shell
  3. 执行恢复命令

# 恢复配置
cp /mnt/tank/apps/frp/frpc.toml.backup-20251030-* /mnt/tank/apps/frp/frpc.toml

# 重启容器
docker restart frpc-youyidian

方法3:手动编辑正确的配置

如果备份也有问题,使用原始配置:

  1. 编辑配置文件
vi /mnt/tank/apps/frp/frpc.toml
  1. 使用以下内容(原始配置):
serverAddr = "180.97.221.140"
serverPort = 7000

[[proxies]]
name = "youyidian-3d"
type = "tcp"
localIP = "127.0.0.1"
localPort = 4320
remotePort = 2320

[[proxies]]
name = "nas-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 2322

[auth]
method = "token"
token = "LiuYunKu_NAS_2024_SecureToken"

[log]
to = "/mnt/tank/apps/frp/frpc.log"
level = "info"
maxDays = 3
  1. 保存并重启
# 保存后退出 vi(按 ESC,然后 :wq)
docker restart frpc-youyidian

✅ 验证恢复成功

1. 检查容器日志

docker logs --tail 20 frpc-youyidian

应该看到:

login to server success
start proxy success

2. 从外网测试

# 测试网站
curl -I https://3d.yydd.ai

# 测试SSH
ssh -o ConnectTimeout=10 root@180.97.221.140 -p 2322

应该返回:

  • 网站:HTTP/2 200 或 301/302
  • SSH:能够连接并输入密码

🎯 恢复后的优化(可选)

服务恢复后,如果还想优化FRP配置,请使用测试过的配置:

serverAddr = "180.97.221.140"
serverPort = 7000

# 传输优化(可选)
[transport]
heartbeatInterval = 30
heartbeatTimeout = 90
tcpMux = true
poolCount = 5

[[proxies]]
name = "youyidian-3d"
type = "tcp"
localIP = "127.0.0.1"
localPort = 4320
remotePort = 2320
transport.useEncryption = false
transport.useCompression = false

[[proxies]]
name = "nas-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 2322

[auth]
method = "token"
token = "LiuYunKu_NAS_2024_SecureToken"

[log]
to = "/mnt/tank/apps/frp/frpc.log"
level = "info"
maxDays = 3

💡 预防措施

以后修改FRP配置时:

  1. 先测试连接
# 测试配置文件语法
docker exec frpc-youyidian frpc verify -c /etc/frp/frpc.toml
  1. 保留备份窗口

    • 修改后不要立即关闭SSH连接
    • 等待30秒确认FRP重新连接成功
  2. 监控日志

docker logs -f frpc-youyidian

📞 需要帮助?

如果恢复遇到问题:

  1. 找不到NAS本地IP

    • 登录路由器查看设备列表
    • 或在TrueNAS物理屏幕上查看
  2. 无法访问NAS

    • 确保在同一局域网
    • 检查防火墙设置
  3. 容器无法启动

# 查看完整错误
docker logs frpc-youyidian

# 重新创建容器(使用原配置)
docker stop frpc-youyidian
docker start frpc-youyidian

恢复后请告诉我结果,我将继续帮您解决上传问题! 🚀