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


概覽

看到有人用樹莓派搭家庭服務器,感覺太不值了,300塊都可以搭一台性能還可以的低功耗x86主機了,我搭一個150塊頂多的服務器玩玩。
0.Linux服務器學習(比虛擬機雙系統舒服多了)
1.流媒體播放:miniDLNA實現多終端音視頻共享
2.文件共享:samba實現多終端的文件共享。
3.自動下載:利用aria2c實現下載下載機。

准備工作

使用材料介紹:

對我來說這些東西100就搞定了,對一般人來說這一套頂多150
與文章無關手頭上有台tp-wr886n,刷機:https://www.right.com.cn/forum/thread-355721-1-1.html

1. nanopi neo2 :

全志H5處理器,好像比樹莓派3b+性能強,如果想做軟路由,刷openwrt,可以用nanopi r1s或r2s 雙網口,反正再怎么樣比樹莓派便宜多了
千兆網口比樹莓派3b+好,美中不足只有一個usb2.0,組nas輕度使用玩玩就行,當下載機不成問題

另外該開發板尺寸是真的小,這是吸引我的一點,同時方便以后嵌入式linux學習

該開發板官方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不裝圖形界面勉強夠用,有條件可以用大一點的。

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命令燒寫系統

注意燒寫工具路徑不能有中文名

我用的是UbuntuCore,搭軟路由還是用OpenWrt的好些,不多贅述。更多可以看官方wiki

服務器配置:

連接


軟件推薦用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

自動掛載磁盤

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的密碼

安裝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

無報錯即可
訪問

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 <stdio.h>
#include<stdlib.h>
#include <wiringPi.h>
#include <softPwm.h>
#include<unistd.h>
#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試試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM