电视盒子搭建armbian系统实现小型服务器(2G+16G)

搭建前

  1. 前置知识:
    • armbian系统是什么:Armbian(中文名:岸边)系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统
  2. 电视盒子的选择:魔百盒(2024.1价格大概在80,送全套东西:1条网线,魔百盒电源,一条HDMI连接线,遥控器。)
    • 型号:cm311-1a
    • CPU:s905l3a芯片
    • 运行内存+闪存:2G+16G
    • 无WIFI版本
  3. 最终实现的功能:
    • 安装armbian系统
    • 利用ddns实现远程访问服务器
    • 安装小猫咪
    • 安装青龙面板(跑脚本的)
    • 安装RabbitPro(可以短信登陆jd)
    • 安装spy(可以自动监测tg频道消息的关键词并提醒)
    • 定时向tg指定用户发送消息

开始搭建

搭建armbian系统

  1. 下载cpu芯片对应的server的img版本,然后插入u盘,制作系统盘,mac终端输入
    • diskutil list #显示当前所有得磁盘情况
    • diskutil unmountDisk /dev/disk? #卸载U盘上的所有磁盘,写入之前必须卸载,不然显示resource busy
    • dd if={ISO_IMAGE_HERE_} of=/dev/disk1 bs=1m #拷贝磁盘
    • 等待,完成后输入diskutil eject /dev/disk?
  2. 打开电视盒子,迅速插入u盘(晚了就进入电视系统了),接下来就是安装过程了,可以参考机器人工匠阿杰的P6

安装小猫咪

  1. 下载clash的Linux版本:自己去找
  2. 输入以下代码
    • 将下载好的clash文件传到服务器:scp -P yourport -r clashPath username@ip:path
    • 创建clash存放的文件夹:mkdir /opt/clash
    • 将clash的config.yaml和Country.mmdb访问/opt/clash下(自己去找配置文件下载)
    • 进入/opt/clash,chmod +x clash
    • 开通clash服务:执行./clash -d .
    • 测试是否成功:curl -I https://www.youtube.com/(注意别用ping,ping不通,ping好像不走clash)
  3. 设置开机自启动:
    • 创建service文件:touch /etc/systemd/system/clash.service

    • 编辑service文件:vim /etc/systemd/system/clash.service,填入以下内容:

      点击查看
      [Unit]
      Description=Clash service
      After=network.target
      [Service]
      Type=simple
      User=root
      ExecStart=/opt/clash/clash -d /opt/clash/
      Restart=on-failure
      [Install]
      WantedBy=multi-user.target
    • 开机自启动:sudo systemctl enable clash

    • 常用systemctl命令:

      点击查看
      # 重载服务
      sudo systemctl daemon-reload
      # 开机启动
      sudo systemctl enable clash
      # 启动服务
      sudo systemctl start clash
      # 查看服务状态
      sudo systemctl status clash
      # 只查看某一个服务的启动日志
      journalctl -u [unit]
  4. 设置系统挂上clash:
    • vim /etc/profile,然后加入以下内容

      点击查看
      export http_proxy="http://127.0.0.1:7890"
      export https_proxy="http://127.0.0.1:7890"

ddns

  1. 我用的是电信+TP-LINK路由器实现的ddns
  2. ddns需要公网ip,我为了得到公网ip,特地将家里的移动宽带换成了电信宽带,然后直接客服申请公网ip,过了几个小时电信就电话说公网ip已经开通了(不得不说电信真给力!)。TP-LINK是提供免费的域名的,进入路由器操作就行,然后将端口22映射到你想通过远程访问的端口即可

安装青龙面板

  1. 可以ssh连接盒子,不用鼠标了,只要知道盒子的内网ip即可(进入路由器管理界面可以查到或者启动盒子的时候会有ip显示)

  2. 安装docker:armbian-docker

  3. 安装2.11.3版本的青龙面板:

    点击查看代码
    docker run -dit \
    -v $PWD/ql/config:/ql/config \
    -v $PWD/ql/log:/ql/log \
    -v $PWD/ql/db:/ql/db \
    -v $PWD/ql/scripts:/ql/scripts \
    -p 5700:5700 \
    --name qinglong \
    --hostname qinglong \
    --restart always \
    whyour/qinglong:2.11.3
  4. 安装完成,输入ip:5700就可以访问了

  5. 需要注意的是:在docker内,无法走系统设置的代理,例如若设置127.0.0.1:7890,则是走的docker的而不是系统的,这是因为docker与系统是隔离的,相当于沙盒。所以要通过系统的ip地址+7890访问clash。

  6. 青龙拉库最好设置代理,即在docker中设置git走系统代理。

  7. 关于docker:docker与宿主机的环境是隔离的,要在docker镜像中使用宿主机的代理,可以进入镜像后这样,export ALL_PROXY='ip:port'

安装RabbitPro和spy

直接上教程,请查收:RabbitProspy

定时发送tg

  1. 主体部分:其实就是利用tg的开放api实现的,没什么技术含量,chatgpt直接实现,话不多说,直接上代码:

    点击查看代码
    from telethon import TelegramClient
    # 替换为你的 Telegram API 的信息
    api_id = '20863054'
    api_hash = 'c0218a9cf6c0f60628ecc2c59e4d35d4'
    # 替换为目标用户的 username 或用户id
    target_entity = '@chriszhi_bot'
    message = '/check'
    # 发送消息
    with TelegramClient('mysession', api_id, api_hash) as client:
    client.loop.run_until_complete(client.send_message(target_entity, message))
  2. 定时部分

    • 输入crontab -e加入定时代码:30 21 * * 0 python send_tg_jd.py >/root/log/kribe.log 2>&1
    • 保存后,systemctl restart cron即可
    • cron还有其他命令,可以自行搜索

总结

读大学的时候,我一直觉得搭建这样一个服务器并实现一些功能很酷,现在也是终于实现了,自动化真的很酷好嘛。前前后后从攻略到买设备到搭建过程的bug到成功搭建,花了大概一周多吧,可能有些伙伴表示好费时间,不能理解,但是,费时间并成功了这个过程何尝不是一种快乐呢哈哈,不能说非常自豪,毕竟也不算难,但是我自己也是非常开心的,毕竟做人嘛,开心最重要哦。非常感谢提供资源的伙伴,谢谢a俊。

感谢(排名不分先后)

posted @   Kribe  阅读(1381)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示