150元搭建微型家庭服务器(支持DLAN,samda,aria2)

概览

看到有人用树莓派搭家庭服务器,感觉太不值了,300块都可以搭一台性能还可以的低功耗x86主机了,我搭一个100块顶多的服务器玩玩。
0.Linux服务器学习(比虚拟机双系统舒服多了)
1.流媒体播放:miniDLNA实现多终端音视频共享
2.文件共享:samba实现多终端的文件共享。
3.自动下载:利用aria2c实现下载下载机。

准备工作

使用材料介绍:

对我来说这些东西100就搞定了,对一般人来说这一套顶多200
与文章无关手头上有台tp-wr886n,刷机:https://www.right.com.cn/forum/thread-355721-1-1.html

1. nanopi neo2 :

二手80元包邮顺丰 全志H5处理器,好像比树莓派3b+性能强,如果想做软路由,刷openwrt,可以用nanopi r1s或r2s 双网口,反正再怎么样比树莓派便宜多了
千兆网口比树莓派3b+好,美中不足只有一个usb2.0,组nas轻度使用玩玩就行,当下载机不成问题
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第1张图片
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第2张图片

另外该开发板尺寸是真的小,这是吸引我的一点,同时方便以后嵌入式linux学习
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第3张图片
该开发板官方wiki:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO2/zh#.E6.8E.A5.E5.8F.A3.E5.B8.83.E5.B1.80.E5.92.8C.E5.B0.BA.E5.AF.B8

其实用其他pi开发板也是差不多的,x86二手机也行,最近打算疫情过去后捡台x86 itx,搞ros

2. 网线

0元 自备

3. micro sd卡

4GB 自备淘汰,0元,快递封了,卖不到大的,4GB不装图形界面勉强够用,有条件可以用大一点的。

4. usb转ttf模块

买nanopi送的 0元 ch340的还带开关

5.硬盘或U盘

价格自己选,组nas,samba,miniDLNA要用,反正我用的是一个16GB 旧U盘。

系统安装:

下载系统固件

http://download.friendlyarm.com/nanopineo2

官方提供以下固件:
nanopi-neo2_sd_friendlycore-xenial_3.10_arm64_YYYYMMDD.img.zip 基于UbuntuCore构建的系统固件,使用Linux-3.10内核
nanopi-neo2_sd_friendlycore-xenial_4.14_arm64_YYYYMMDD.img.zip 基于UbuntuCore构建的系统固件,使用Linux-4.14内核
nanopi-neo2_sd_friendlywrt_4.14_arm64_YYYYMMDD.img.zip 基于OpenWrt构建的系统固件,使用Linux-4.14内核
烧写工具:
win32diskimager.rar Windows平台下的系统烧写工具,Linux平台下可以用dd命令烧写系统

注意烧写工具路径不能有中文名
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第4张图片
我用的是UbuntuCore,搭软路由还是用OpenWrt的好些,不多赘述。更多可以看官方wiki

服务器配置:

连接

150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第5张图片
软件推荐用xshell6,xftp6,真的好用,比putty强,个人版免费,商业版收费,优先去官网下
连接请参考这篇:https://www.cnblogs.com/lfri/p/11874740.html
FriendlyCore默认帐户:
普通用户:
用户名: pi
密码: pi
Root用户:
用户名: root
密码: fa
为防止出现奇奇怪怪的事发生,使用root用户

配置

换源

$ sudo vim /etc/apt/sources.list

加入

    中科大源
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
    deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
    deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
    deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
    deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
    deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe

    清华源
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe

更新软件包:

$ sudo apt-get update

挂载磁盘

Linux外接U盘或移动硬盘时,默认不会自动挂载,所以需要用 mount 命令挂载。

sudo mkdir /samda
sudo chmod 777 /samba
sudo umount /dev/sda1   #取消挂载,如果有的话
sudo mount -o  /dev/sda1 /samda

如果用完后卸载,现在别输

sudo umount /samda

现在输

sudo df -h

出现里面的16gbU盘挂载到了/samda
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第6张图片

自动挂载磁盘

sudo vi /etc/fstab

最后一行加入

/dev/sda1 /samba vfat rw,defaults 0 0

注意这么做之后,没有插U盘无法正常开机,会进入emergency模式,网络无法连接上,那时需要用串口进入调试界面重复以上步骤,删除/dev/sda1 /samba vfat rw,defaults 0 0这一语句

安装samba

sudo apt-get update
sudo apt-get install samba samba-common-bin
sudo vi /etc/samba/smb.conf

最后一行加入

[share]
        comment = samba share dir                                   
        path = /samba/                
        #valid users = root pi            
        browseable = yes                                        
        public = yes                                                 
        writable = yes                    

保存后重启服务
/etc/init.d/samba restart
添加共享用户
最后添加共享用户,设置好共享密码
smbpasswd -a root
设置开机自启动,编辑/etc/rc.local
最后exit 0前,加入

#my extra mod 之后要加的
#nohup /root/extra/extra >>/dev/null &

#samba
/etc/init.d/samba restart

#aria2c 之后要加的
#sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

如图操作,ip地址用pi的地址,输入root的密码
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第7张图片

安装miniDLNA实现流媒体服务器

sudo apt-get update
sudo apt-get install minidlna

配置

设置/etc/minidlna.conf文件,

vi /etc/minidlna.conf

在文件尾部添加如下内容:

media_dir=/samba/DLNA/
media_dir=A,/samba/DLNA/Music                
media_dir=P,/samba/DLNA/Picture                                                
media_dir=V,/samba/DLNA/Video       

手动在/samba文件夹下,建立以上文件夹,并设置权限777。
重启minidlna

/etc/init.d/minidlna restart

测试:

/etc/init.d/minidlna status

无报错即可
访问
150元搭建微型家庭服务器(支持DLAN,samda,aria2)_第8张图片
android可用xplayer访问

装关机重启键

pi没有关机重启功能,如果想换存储器要先打开终端卸载,很麻烦,加个关机功能方便多了
自己写了个程序,不多解释,很简单的

io库说明:http://wiki.friendlyarm.com/wiki/index.php/WiringNP:_NanoPi_NEO/NEO2/Air_GPIO_Programming_with_C/zh
编译命令gcc -Wall -o test test.c -lwiringPi -lpthread
启动命令 ./test
#include 
#include
#include 
#include 
#include
#define controlButton 12
#define LED1 6
#define LED2 10

int shutdown(int pin)
{
    if(0==digitalRead(pin))//防抖
    {
       softPwmWrite(LED1, 100) ;
       delay (500) ;

        if(0==digitalRead(pin))
        {
            softPwmWrite(LED1, 0) ;
            delay (100) ;
           softPwmWrite(LED1, 30) ;
            delay (3000) ;
            if(1==digitalRead(pin))//关机
            {
                system("halt");
                return 0;
            }
           softPwmWrite(LED1, 100) ;
           delay (3000) ;
            if(1==digitalRead(pin))//重启
            {

                system("reboot");
                return 0;
            }          
        }
    }
softPwmWrite(LED1, 0) ;
delay(3000);
 return 0;
}
int main(void)
{
   wiringPiSetup() ;
//pinMode (19,OUTPUT) ;
//pinMode (21,OUTPUT) ;
//pinMode (23,OUTPUT) ;

   pullUpDnControl (controlButton, PUD_UP);
   pinMode (controlButton, INPUT) ;
 softPwmCreate (LED1, 0, 100) ;   // 设置GPIO.1为PWM输出    

   pinMode (LED2,OUTPUT) ;
   digitalWrite(LED2, LOW) ;
   delay (3000) ;
   while(1)
    {
    shutdown(controlButton);

     //digitalWrite(LED2, HIGH) ;
     //delay (500) ;
     //digitalWrite(LED2,  LOW) ;
    // delay (500) ;
     }
return 0;
}

安装aria2成为下载机

sudo apt-get update
sudo apt-get install aria2
sudo mkdir /etc/aria2    #创建aria2目录存配置文件
sudo touch /etc/aria2/aria2.session    #创建空白的aria2.session文件
sudo nano /etc/aria2/aria2.conf    #创建配置文件

在该文件中输入以下内容:

dir=/samba 
disable-ipv6=true  
enable-rpc=true 
rpc-allow-origin-all=true 
rpc-listen-all=true 
#rpc-listen-port=6800 
continue=true 
input-file=/etc/aria2/aria2.session 
save-session=/etc/aria2/aria2.session 
max-concurrent-downloads=3

文件直接下到/samba。

启动aria2

sudo aria2c --conf-path=/etc/aria2/aria2.conf

如果没有提示任何错误信息,那就按ctrl+c停止上面的语句,转为后台运行:
在rc.local加入,文章上面已经有提示了

sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

装个web服务器

sudo apt-get install nginx

配置:
https://blog.csdn.net/ljp1919/article/details/72833982?utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/zhangcongyi420/article/details/89216867?utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/qq_41701838/article/details/89240153
https://www.cnblogs.com/zy-tester/p/9805012.html

再装个AriaNg,接下来就可以用aria2下东西了
nginx可以改哪个avalible文件里的default文件
注意如果nginx出现404,反复排查发现不了问题,可以换个端口8080试试

你可能感兴趣的:(150元搭建微型家庭服务器(支持DLAN,samda,aria2))