红米note7pro:重生之我怎么成服务器了😂

6 阅读5分钟

项目代号:Redmi-Server-IPv6(红米note7pro:重生之我怎么成服务器了😂) 核心目标:接上一篇文章 如果白嫖服务器到期怎么办,来个一劳永逸的;利用闲置安卓手机,在无 Root 环境(无需解BL哦,当然解了更好)下搭建基于 IPv6 的全功能私有服务器。 实现功能

  1. RustDesk 自建中继:实现全平台毫秒级远程桌面。
  2. Nginx 静态服务:作为 GitHub Blog 的国内极速镜像站。
  3. DDNS 动态解析:利用阿里云 API 实现 IPv6 公网直连。

🛠 第一阶段:环境初始化 (Termux)

Termux 是安卓上的 Linux 终端模拟器,是我们一切服务的基础。

1. 安装与配置

  • 下载安装 Termux (推荐 F-Droid 版本)。

  • 权限设置:安卓设置 -> 应用 -> Termux -> 电池优化 -> 设为“无限制” (防止后台杀进程)。

  • 小技巧:小米手机可以上划进入请后台界面,然后长按Termux,加锁,这样一键清后台也不会把Termux杀掉。

  • 初始化环境

    # 换源并更新
    termux-change-repo
    pkg update && pkg upgrade -y
    ​
    # 安装核心工具链
    pkg install vim git nodejs nginx python lsof screen openssh wget curl -y
    

2. 目录结构规范 为了避免文件散落在 ~ 根目录,建立工程化目录结构:

  • ~/ddns/:存放 DDNS 脚本及配置文件。
  • ~/www/blog/:存放博客静态文件。
  • ~/rustdesk/:存放远程桌面服务程序。

🌐 第二阶段:网络与域名 (最核心的坑)

这是本次折腾中最耗时、坑最多的部分,涉及公网 IPv6DNS 解析以及本地代理冲突

1. 域名解析 (Aliyun)

  • 前提:在阿里云购买域名(也可以不买直接用IPV6地址,但不够优雅) 。

  • 操作

    1. 登录阿里云 DNS 控制台。

    2. 添加 AAAA 记录(针对 IPv6):

      • 主机记录 @ -> 指向手机当前 IPv6 地址。
      • 主机记录 www -> 指向手机当前 IPv6 地址。
    3. 获取 AccessKey IDSecret (用于 DDNS),一定要保存下来!!!

2. 部署 DDNS-Go

  • 下载:下载 ddns-golinux_arm64 版本。

  • 配置

    • 运行 ./ddns-go -s install

    • 浏览器访问 http://127.0.0.1:9876

    • 关键设置

      • DNS 服务商选 Aliyun。
      • 启用 IPv6,获取方式选“通过网卡获取”。
      • Domain: 填写 购买的域名

⚠️ 3. 解决“代理冲突” (排错重点)

现象:不开梯子能连,开了梯子反而连不上(DNS 污染/拦截)。 解决方案 (必做)

  1. Clash/代理软件端

    • 开启 IPv6 支持

    • 在配置文件的 rules 最上方添加直连规则(记得保存后重启):

      - DOMAIN-SUFFIX,你的域名,DIRECT
      
  2. Windows 系统端 (必杀技)

    • 设置 -> 网络 -> 代理 -> 手动设置代理 -> 编辑。

    • 在“请勿将代理服务器用于下列地址”中追加:

      ;你的域名
      

🖥 第三阶段:部署 RustDesk 中继服务

彻底摆脱 TeamViewer 和向日葵的限速。

1. 下载服务端

  • 前往 GitHub Releases 下载 rustdesk-server-linux-arm64.zip
  • 解压至 ~/rustdesk/

2. 启动服务 利用 screen 保持后台运行:

# 启动 ID 服务 (hbbs)
screen -dmS hbbs ./hbbs -r 你的域名:21117
​
# 启动 中继服务 (hbbr)
screen -dmS hbbr ./hbbr

3. 客户端配置

  • ID/中转服务器:填写 你的域名
  • Key:查看手机上的公钥文件 (cat ~/rustdesk/id_ed25519.pub) 并填入客户端。

📝 第四阶段:Nginx 博客镜像站

将 GitHub Pages 镜像到本地,实现内网/国内极速访问。

1. 拉取博客代码

mkdir -p ~/www/blog
cd ~/www/blog
# 注意:这里直接克隆到当前目录
git clone https://github.com/github名/github名.github.io.git .

2. 配置 Nginx (核心配置) 编辑文件:vim $PREFIX/etc/nginx/nginx.conf 全量替换 http { server { ... } } 部分

server {
    # 手机非 Root 只能监听 1024 以上端口
    # 避开运营商封锁的 80/8080,使用 8888
    listen 8888;
    listen [::]:8888; 
    server_name 你的域名 www.你的域名;
​
    # 务必使用 pwd 获取的绝对路径
    root /data/data/com.termux/files/home/www/blog;
    index index.html;
​
    location / {
        try_files $uri $uri/ =404;
    }
}

3. 启动与验证

# 检查配置
nginx -t 
​
# 启动 (如果报错 invalid PID,直接运行 nginx 即可)
nginx 
​
# 重载
nginx -s reload

访问地址http://你的域名:8888


🤖 第五阶段:自动化运维脚本

为了防止手机重启服务挂掉,以及自动同步博客更新。

1. 一键启动脚本 (~/start_all.sh)

#!/bin/bash
echo "启动 DDNS..."
cd ~/ddns && screen -dmS ddns ./ddns-go
​
echo "启动 RustDesk..."
cd ~/rustdesk
screen -dmS hbbs ./hbbs -r wuwk.top:21117
screen -dmS hbbr ./hbbr
​
echo "启动 Nginx..."
pkill -9 nginx
nginx
​
echo "所有服务已启动!"

2. 博客自动同步脚本 (~/sync_blog.sh)

#!/bin/bash
cd /data/data/com.termux/files/home/www/blog
git pull origin master
# 检查 Nginx 是否存活,死则启,活则刷
if pgrep -x "nginx" > /dev/null; then
    nginx -s reload
else
    nginx
fi

建议配合 crontab 设置每小时执行一次。


🔋 第六阶段:硬件保命方案

红米 Note 7 Pro 长期插电运行的隐患是电池鼓包

解决方案

  • 不推荐:拆机改直供电(风险大,断电即关机)。

  • 推荐:由于没有root,购买小米智能插座就行了。

  • 自动化设置:配合米家 APP 设置场景:

    • IF 电量 > 80% THEN 关闭插座。
    • IF 电量 < 30% THEN 开启插座。
  • 散热:去掉手机壳即可。


❓ 常见问题排查手册 (Troubleshooting)

  1. Nginx 报错 invalid PID number

    • 原因:Nginx 进程没在运行。
    • 解决:直接输入 nginx 启动,不要用 reload
  2. 外网访问博客转圈圈 (Timeout)

    • 原因:路由器拦截了入站连接。
    • 解决:进入路由器后台,关闭 IPv6 防火墙,或添加允许 888821116 端口的规则。
  3. RustDesk 提示“Key 不匹配”

    • 原因:服务端重新生成了密钥。
    • 解决:检查手机上 id_ed25519.pub 的内容是否变动,更新客户端设置。
  4. curl 本地通,外网不通

    • 检查 Nginx 配置里是否写了 listen [::]:8888; (必须有 [::])。

最后的话: 你现在拥有一台完全免费、带宽跑满、数据私有的高性能服务器。如果未来更换设备,只需要把 Termux 里的数据打包,按照这篇文档重新配置一下 IP 和 Nginx 路径即可。

Happy Hacking! 🚀