机顶盒家用服务器 NAS

我是小盒子, 也是大世界


基本信息


盒子实测耗电仅约3瓦, 一杯奶茶的成本可以养它一年(24小时x365天)! 就是这么优秀!
盒子运行 Linux Ubuntu 20.04.4 LTS 服务器系统, 配置了适量的常用软件, 完全可以满足个人家用需求

WOO, 动手打造属于你的空间吧!

常用功能按钮

点击打开进行日常维护和使用.

如遇到不慎操作失误或者安装了自己不清楚的软件, 可以使用还原备份系统的命令:   recoverbackup  
需要等待约4分钟左右, 系统将自动覆盖根分区, 根分区内的数据将全部被原备份系统清除并覆盖, 请做好必要的资料保存, 还原后外网访问的网址将重新随机分配

开始使用

建议使用 Edge、Chrome、火狐浏览器等访问和管理机顶盒 管理终端, 或者使用 Windows 10 的命令提示符、SSH终端管理器等登陆后台

常用的 Linux 命令

					ssh root@192.168.x.x			终端登陆服务器
					df -H							查看磁盘使用详情	
					ls -al (ll)						查看当前目录下的所有文件	
					apt update && apt upgrade -y	更新官方源已安装的软件	
					apt install samba				安装软件包, 例如 Samba
					cd /home/ubuntu					进入 /home/ubuntu 目录位置
					wget http://xxx.com/xxx.xxx		下载网络链接文件到当前文件夹位置
					passwd root						修改当前系统账号 root 的密码, 需要重复输入两次密码
					
                                

盒子内置有以下几个基本功能的软件安装小白脚本, 直接输入以下命令即可自动安装并自动配置, 即装即用

		                    	install-samba.sh		安装局域网共享
		                    	install-qinglong.sh		安装 Docker 应用: 青龙面板
		                    	install-v2ray.sh		安装 Socks5 服务器
		                    	install-portainer.sh	安装 Docker 容器管理面板
		                    	install-gitweb.sh		安装和打造个人的 Git 仓库
                         

使用 vi 命令对文档进行编辑;

				vi abc 打开和进入 abc 文档
				提示: 连续按下两下 dd 即可删除光标所在的行
				按一次键盘的 Insert 或者 i 按键, 即可进入当前文件的编辑模式
				键盘上下左右移动光标,
				修改编辑完毕, 按一次 Esc 按键退出编辑模式, 
				然后输入 :wq 这三个符号, 回车即可保存并退出文档
				若不保存当前修改, 即输入 :q! 这三个符号,回车即可直接退出文档编辑
                         

管理服务器文档

可以采用 FTP 或 SCP 等方式对服务器文档进行管理, 上传和下载
初始账号密码 ubuntu 1234


具体使用指南

建议使用FileZilla或者WinSCP进行文件传输管理

操作教程 分享和答疑

内网穿透的使用场景

服务器采用 FRP 开源软件进行内网穿透

已经搭建了一个位于国外的服务器作为 FRP 的服务端, 并自动分配给盒子一个随机的二级域名, 你可以轻松的在外面访问盒子首页本盒子外网网址 : https://nas-xxxxx.any168.net

服务器详情 分享与答疑

使用场景

修改和配置 /etc/frp/frpc.ini 文档

把盒子放在家里, 公司, 或学校, 让你的盒子变身为一个比花生棒更加强大的跳板机, 没错, 也是白嫖的!

                        # /etc/frp/frpc.ini
                        [common]
                        server_addr = frp.ecoo.ga
                        server_port = 7000
                        log_max_days = 3
                        token = any168tomynas
                        login_fail_exit = false
                        [ssh-xxx]
                        type = tcp
                        local_ip = 127.0.0.1
                        local_port = 22
                        remote_port = 10086
                        [web-xxx]
                        type = http
                        local_ip = 127.0.0.1
                        local_port = 80
                        subdomain = nas-xxx
                        # 添加以下内容变身
                        [web-xxx-synology]
                        type = http
                        local_ip = 192.168.1.222  #假设这是你的黑群IP
                        local_port = 5000
                        subdomain = xxx-synology	
                        #你就可以在外网用xxx-synology.any168.net域名直接访问黑群的管理页面了
                        # 添加以下内容变身2
                        [web-xxx-mycompany]
                        type = http
                        local_ip = 192.168.1.10  #假设这是你公司的文档服务器
                        local_port = 80
                        subdomain = xxx-company	
                        #你就可以在外网用xxx-company.any168.net域名直接访问公司文档页面了
                        # 添加以下内容变身3
                        [web-xxx-myschool]
                        type = http
                        local_ip = 192.168.1.10  #假设这是你校园内网专用的考试查询内网地址
                        local_port = 80
                        subdomain = xxx-myschool	
                        #你就可以在外网用xxx-myschool.any168.net域名直接访问校园内网了
                        
                        

检查自己修改的配置是否成功(多人使用, 只能使用唯一的xxx名称):

                        systemctl stop frpc			#先停止frp客户端的服务
                        frpc -c /etc/frp/frpc.ini		#试运行上面修改过的配置
                        #最后, 如果出现的都是蓝色的并且都显示success的结果, 则ok, 
                        #否则重新修改xxx的名称避免和其他人的设置重复
                        #按ctrl+c结束命令
                        systemctl restart frpc		#重启服务
                        

Socks5 服务器配置

浏览器代理设置

打开设置-网络-代理, 按照上图设置, 保存

Windows 代理设置

打开 Windows 设置-网络-代理, 按照上图设置, 保存

查看是否上线

浏览器打开在线检测IP, 看到 IP 不同则成功

限于研究学习的目的, 自带节点
安装下面的脚本后盒子打开了 Socks5 的代理服务功能, 端口号10808
你在浏览器或者系统自行设置通过盒子的IPdemo.ecoo.top代理 Socks5 上网即可

				install-v2ray.sh			# 终端输入这句命令自行安装
				systemctl status v2ray		# 查看运行状态是否正常
				curl --socks5 127.0.0.1:10808 google.com  # 返回 301 字样则成功
				install-v2ray.sh --remove	# 终端输入命令即可卸载 v2ray
                      	 	

本功能仅作为学习以及测试使用, 禁止用于非法用途! 测试完毕请立即卸载!


创建个人博客或家用公告栏

点击打开个人博客, 点击“我准备好了, 开始下一步", 输入新设登陆的密码, 点击“确认, 开始安装"
博客的用途非常广泛, 你甚至可以机智地把它当成家庭公告板提醒家里人上去写留言;
也可以当成自己的网络笔记本, 粘贴上你在网络上学习过的代码, 永久保留备查;
还可以把外网网址公开给私人好友, 分享你的能量

保存和重装后还原博客数据库

在 recoverbackup 重装系统之前, 一定要备份博客的数据库
数据库位置路径在 /var/www/html/blog/usr/623d62d5e5e96.db (db 名称可能会不相同)
操作如下:

			     mkdir -p /mnt/sda1/blog-data			在U盘建立数据库一个文件夹
			     chmod -R 777 /mnt/sda1/blog-data		给文件夹赋予权限
			     cp /var/www/html/blog/usr/*.db /mnt/sda1/blog-data/myblog.db
			     把数据库文档移出来到U盘指定目录并重命名为 myblog.db
			     

下次重新安装博客时, 点击 "我准备好了, 开始下一步", 数据库文件路径输入 /mnt/sda1/blog-data/myblog.db 然后无需设置密码直接点击 "确认, 开始安装", 然后点击 "使用原数据" 这样就把数据还原了, 打开还是原来一样的所有文章
注意: 如果你常常使用的是外网网址登陆博客, 请在后台设置里填写正确的外网网址


如何安装和设置网络文档共享

第一步, 先运行命令 install-samba.sh 使用系统内置的脚本安装 Samba 软件
安装完成后会自动共享 /home/ubuntu/downloads 文件夹,
在文件管理器输入: \\demo.ecoo.top 即可访问

修改配置文档, 把U盘的文件夹共享出来

			     mkdir -p /mnt/sda1/usb-share		在U盘建立一个文件夹 usb-share (当然, 你也可以建立其他文件夹)
			     chmod -R 777 /mnt/sda1/usb-share	给这个文件夹赋予权限
			     

输入命令 vi /etc/samba/smb.conf 修改配置, 在结尾下面添加如下代码:

			     [usb-shares]
				path = /mnt/sda1/usb-share			# 当然, 你可以直接共享整个U盘目录, 例如 /mnt/sda1
				read only = no						# 是否设置文件只读权限
				guest ok = yes						# 是否允许匿名访问
				create mask = 0777
				directory mask = 0777
				browseable = yes					# 是否允许浏览目录
			     
			    systemctl restart smbd		修改完成后需要重启 Samba 服务
			     

最后, 在文件管理器输入: \\demo.ecoo.top 即可访问在网上邻居也可以找到这个共享文件夹了


其他功能与使用技巧

NFS服务器 -

系统已内置 NFS 文件服务器
初始地址为 /home/ubuntu/downloads

                                vi /etc/exports		# 编辑配置文件, 加入以下内容 (请根据实际情况修改)
                                /home/ubuntu/downloads *(rw,sync,no_root_squash,no_subtree_check)
                                /mnt/sda1 *(rw,sync,no_root_squash,no_subtree_check)
                                exportfs			# 运行这个命令使配置生效
                                


更改盒子网口 MAC 地址 -

                                vi /etc/network/interfaces.d/eth0		# 编辑配置文件
                                # 增加下面的内容 (实际内容可按需修改)
                                pre-up ifconfig eth0 hw ether 00:11:22:33:44:66
                                


设置静态IP -

					vi /etc/network/interfaces.d/eth0	# 修改配置文件
					# 增加下面的内容 (实际内容可按需修改)
					auto eth0
					iface eth0 inet static
					address 192.168.1.10				# IP 地址, 下面部分地址需要填写为同网段的地址
					network 192.168.1.0
					netmask 255.255.255.0				# 一般保持不变
					broadcast 192.168.1.255
					gateway 192.168.1.1					# 网关路由器地址
					dns-nameservers 192.168.1.1			# 一般也填网关路由器地址
					pre-up ifconfig eth0 hw ether 00:11:22:33:44:66
					


WebDAV 服务器 -

已经内置 WebDAV 服务在 8081 端口, 默认文档位置在 /home/ubuntu/webdav
修改默认文档位置 vi /etc/nginx/sites-available/nginx_webdav
修改后输入 nginx -s reload 重启服务

Windwows 映射 WebDAV 目录
开启服务此电脑右键-管理-服务-WebClient 设为自动, 停止服务
修改注册表
修改注册表使得WIN同时支持http和https:
定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
把BasicAuthLevel 值改成2, 即同时支持http和https, 默认只支持https, 然后重启服务:
磁盘映射
在Windows资源管理器空白处右键, 选添加一个网络位置
填写正确的连接加端口号, 默认登陆用户名和密码 admin admin

				修改用户名和密码: 
				echo -n 'admin:' | tee /etc/nginx/passwords.list
				openssl passwd -apr1 | tee -a /etc/nginx/passwords.list
				nginx -s reload
				


增加自建站 Nginx 模块 -

我就建个站
vi /etc/nginx/sites-available/mywebsite
复制下面代码粘贴

				server {
					listen 8088;
					listen [::]:8088;
					server_name example.com;
					root /var/www/html/example.com;
					index index.html;
					location / {
					try_files $uri $uri/ =404;
					}
				}
                                

                                ln -sf /etc/nginx/sites-{available,enabled}/mywebsite
                                nginx -s reload
                                最后运行上面两句使能
                                
把网站文档放在 /var/www/html/example.com 你就可以打开 IP:8088 访问你自己的网站了 这个例子只是简单的模板, 详细情形请搜索学习


安装私人 Git 仓库 -

首先要挂载U盘, 并且在U盘创建 gitweb 文件夹并赋予 777 权限
命令行输入 install-gitweb.sh 自动安装小白脚本
安装完成后, 浏览 http://demo.ecoo.top:8011 即可管理你的 Git 仓库

                                cd /mnt/sda1/gitweb				# 进入U盘
                                # 克隆一个 Github 上的库并建立裸库在服务器上
                                git clone --bare https://github.com/xxx/xxx.git xxx.git
                                cd xxx.git						# 进入该仓库
                                touch git-daemon-export-ok
                                echo "xxx仓库" > description
                                # 这样你就可以看到这个转移过来的仓库了
                                # 建立一个新的空仓库:
                                cd /mnt/sda1/gitweb
                                mkdir xxx.git
                                cd xxx.git
                                git init --bare
                                touch git-daemon-export-ok
                                echo "我的第一个新仓库" > description
                                

客户端克隆本服仓库命令:

                                git clone root@192.168.xx.xx:/mnt/sda1/gitweb/xxx.git
                                密码与系统相同
                                


MiniDLNA 局域网音视频广播 -


                                apt install minidlna			# 安装 MiniDLNA 软件 
                                vi /etc/minidlna.conf			# 修改配置文件
                                将 media_dir=/var/lib/minidlna 修改为 media_dir=/mnt/sda1/minidlna
                                mkdir /mnt/sda1/minidlna		# 在U盘创建目录
                                chmod 777 -R /mnt/sda1/minidlna # 赋予权限
                                

在该文件夹下存放图片或音视频 MP3、MP4、PNG、JPG 等格式的文件
你就可以在局域网下的电脑、手机、电视等智能终端进行播放了


DDNS 解析自动更新脚本教程 -

阿里域名 DDNS 解析更新

                                # 安装 nodejs: apt install nodejs
                                # 修改配置文件: vi /home/ubuntu/client-mode/config.json
                                填写你的阿里提供的 keyid 和 keysecret, 并填写你需要解析的域名
                                {
                                "AccessKeyId": "xxxx ",
                                "AccessKeySecret": "xxxx ",
                                "hostnames": ["@.ecoo.top", "www.ecoo.top"]
                                }
                                保存并退出, 然后添加计划任务(每 15 分钟检查一次, 外网 IP 变化才自动更新)
                                crontab -e
                                输入 */15 * * * * /home/ubuntu/client-mode/client.sh
                                

花生壳和 noip.com 解析脚本

                                使用方法:
                                # 花生壳修改配置文件: vi /home/ubuntu/client-mode/ddns_oray.sh
                                # noip 配置文件: vi /home/ubuntu/client-mode/ddns_noip.sh
                                填写服务商提供的 DDNS 帐号和密码, 并填写你需要解析的域名
                                user=
                                passwd=
                                hostname=
                                保存并退出, 然后添加计划任务(每 15 分钟检查一次, 外网 IP 变化才自动更新)
                                crontab -e
                                */15 * * * * /home/ubuntu/client-mode/ddns_oray.sh
                                或者
                                */15 * * * * /home/ubuntu/client-mode/ddns_noip.sh
                                计划任务教程: https://www.runoob.com/w3cnote/linux-crontab-tasks.html
                                


安装无盘网络启动 -

嗯, 这个在下一次更新推出期待吧

挂载外置设备支持

系统添加了自动挂载的脚本, 插入U盘或移动硬盘即可自动挂载到 /mnt 下, 插入TF卡, 则自动挂载为 /mnt/mmcblk1p1

强烈建议将U盘格式化为 ext4 文件系统
  • * 部分盒子建议插到靠近电源的USB口
  • * 建议使用 Linux 自带的 fdisk 分区命令进行重新分区
  • * 使用 mkfs.ext4 /dev/sdx 命令格式化
外置大硬盘盒可能需要注意供电是否正常
  • * 尝试重新插拨, 查看是否自动挂载
  • * 部分机型可能需要插上USB口以后热启动(上电)才会被盒子识别
格式化USB外置储存设备指南
  • 			    		umount /mnt/sda1	# 卸载分区 (根据情况修改, 有时并非 /mnt/sda1)
    			    		fdisk -l			# 查看磁盘情况
    			    		fdisk /dev/sda		# 进入命令行分区界面 (根据情况修改)
    			    		(注意, 这里是 sda 而不是 sda1)
    			    			输入 o 设置新分区为msdos格式
    			    			输入 n 建立新分区
    			    			接着输入 p 建立主分区
    			    			接着默认 2048 字节扇区头和自动的扇区尾
    			    			(按回车即默认)
    			    			输入 w 将上面的操作保存
    			    		mkfs.ext4 /dev/sda1	# 执行格式化
    			     		

直链下载与 BT 种子下载

Aria2 直链下载
  • * 默认位置都是 /home/ubuntu/downloads
  • * 请自行修改挂载U盘下载位置
  • * 例如先在U盘建立一个文件夹 aria2
Transmission 种子下载
  • * 请自行修改挂载U盘下载位置
  • * 登陆帐号密码是 admin admin
  • * 例如先在U盘建立一个文件夹 transmission

修改 Transmission 密码
  •                             # 停止 Transmission 服务
                                /etc/init.d/transmission-daemon stop
                                # 修改密码
                                # 编辑配置文件: vi /etc/transmission-daemon/settings.json
                                "rpc-password": "{1e82c73f8f4b5c3ba4e2d94227fc19dc3442abf7nSWuZtsb",
                                "rpc-port": 9091,
                                "rpc-url": "/transmission/",
                                "rpc-username": "admin",
                                # 只需要修改 password、username 后面 "" 内的内容即可
                                # 开启 Transmission 服务
                                /etc/init.d/transmission-daemon start
                                
  • Docker 容器使用基础教程

    安装 Docker 程序

    apt update && apt install docker.io

    • 1. 内置青龙面板的安装脚本
    • install-qinglong.sh
    • 2. 内置了容器管理面板的安装脚本
    • install-portainer.sh
    • 3. 内置了特斯拉监控程序的安装脚本
    • install-teslamate1.sh
    • 4. 安装电影播放削刮器(测试中)
    • Docker 很好用, 但并不是全部装上榨干就好, 而是适合自己用就好
    • 如果你有好的建议, 请到论坛贴出你的脚本, 有机会被采纳
    Docker 使用基础

    初学者可以尝试新建和删除 Docker 镜像和容器

    •                                     	docker images		列出已安装的镜像
                                          	docker ps -a		列出已运行的容器
                                          	docker stop xxx		停止 xxx 容器
                                          	docker rm xxx		删除 xxx 容器
                                          	docker rmi xxx		删除 xxx 镜像
                                          	
    • 									# 安装 Docker 镜像前设置安装位置到U盘
                                      	systemctl stop docker				# 停止 Docker 服务
                                      	mkdir -p /mnt/sda1/docker			# 建立文件夹
                                      	chmod 777 -R /mnt/sda1/docker			# 赋予权限
                                      	vi /lib/systemd/system/docker.service	# 编辑配置文件
                                      	ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
                                      	插上一句 --graph="/mnt/sda1/docker" 变为如下: 
                                      	ExecStart=/usr/bin/dockerd --graph="/mnt/sda1/docker" -H fd:// --containerd=/run/containerd/containerd.sock
                                      	systemctl daemon-reload
                                      	systemctl start docker
                                      	

    个人网盘 h5ai 应用

    存档位置: /var/www/html/files/
    如果要更改存档位置到外接设备 /mnt/sda1/usb-files
    则执行: ln -s /mnt/sda1/usb-files /var/www/html/files/usb-files
    系统默认配置已经作了一个软链接示范
    /home/ubuntu/files软链接到/var/www/html/files/home

                                    mkdir -p /mnt/sda1/usb-files
                                    ln -s /mnt/sda1/usb-files /var/www/html/files/usb-files
                                    echo "## 这是页首显示" > /mnt/sda1/usb-files/_h5ai.header.md
                                    echo "## 这是页脚说明" > /mnt/sda1/usb-files/_h5ai.footer.md
                                    

    网盘系统可以直接播放音视频和查看文档内容
    在文档名称前面打勾, 左上角的下载按钮, 可以直接将文档打包zip格式并浏览器下载


    Version History (Changelog)

    本操作系统基于 Ubuntu 20.04.4 LTS, 由 Teasiu 和 Hyy2001 定制


    Changelog

    Copyright and License

    盒子内核及运行设计版权归神雕 teasiu@ecoo.top, 任何人使用或移植借鉴须注明出自 www.ecoo.top

    未经作者授权, 不得将系统用于盈利售卖, 不得用于衍生的任何软件变相收费否则视为侵权行为! 一旦被举报, 必将追究!

    官方网站 www.ecoo.top