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轻度使用玩玩就行,当下载机不成问题
另外该开发板尺寸是真的小,这是吸引我的一点,同时方便以后嵌入式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 自备淘汰,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命令烧写系统
注意烧写工具路径不能有中文名
我用的是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试试
150元搭建微型家庭服务器(支持DLAN,samda,aria2)的更多相关文章
- 搭建nginx流媒体服务器(支持HLS)
环境搭建 (一)下载源代码 nginx,地址:http://nginx.org/可以选择需要的版本下载 nginx_mod_h264_streaming-2.2.7.tar.gz ,支持MP4流,具体 ...
- linux搭建微型git服务器
1.安装git和git-core yum install git git-core -y 2.创建仓库 mkdir /home/git cd /home/git git init 3.设置可以远程pu ...
- 1元搭建自己的云服务器&解析域名
最近在学做微信开发,没有自己的域名和服务器就不得不寄人篱下,索性自己就到云主机上搭建了个服务器,但是水平有限弄了一个下午~~有自己的域名和服务器的好处相信不用我多说了.比如日后可以有自己域名的个性博客 ...
- Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 关键词: frp内网 ...
- VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018
视频介绍 树莓派3安装目前最流行的PLEX服务器,实现既能最大限度降低功耗,也能随时随地观看分享影片. 一.在树莓派下安装PLEX媒体服务器 1.在终端,将你的树莓派更新至最新 sudo apt up ...
- 前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上
目录 搭建Linux云服务器 购买与基本配置 链接linux服务器 目录结构 基本命令 软件安装 Linux 系统启动 启动过程 运行级别 Nginx详解 1.安装 方式一:yum安装 方式二:自定义 ...
- 在UP Board 上搭建M——L服务器
前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 on UP Board 初识免流 所谓免流,就是免除手机访问网络产生的流量费用.其原理在乌云网上有过报道 ...
- Centos6一键搭建L2TP VPN服务器
用VPS在墙上打洞还有一种叫L2TP,也是常见的一种方式.本脚本结合了L2TP(Layer Tunneling Protocol)和IPSec(Internet Protocol Security), ...
- [转]World Wind Java开发之四——搭建本地WMS服务器
在提供地理信息系统客户端时,NASA还为用户提供了开源的WMS Server 服务器应用:World Wind WMS Server.利用这个应用,我们可以架设自己的WMS服务并使用自己的数据(也支持 ...
随机推荐
- 整理收集的一些常用java工具类
1.json转换工具 package com.taotao.utils; import java.util.List; import com.fasterxml.jackson.core.JsonPr ...
- SpringScan
ClassPathBeanDefinitionScanner.java /** * Perform a scan within the specified base packages, * retur ...
- MANIFEST.MF详解及配置的注意事项
一.详解 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介 ...
- Tensorflow机器学习入门——cifar10数据集的读取、展示与保存
基本信息 官网:http://www.cs.toronto.edu/~kriz/cifar.html 共60000张图片:50000张用于训练.10000张用于测试 图片大小为:32X32 数据集图片 ...
- 经常犯的错误之递归写不全return
在写递归函数的时候,只在最后一层写return,中间的过程没有return,导致结果的丢失. 举个例子 LL query(LL i, LL k) { if (sum[i] < k) { ; } ...
- Web API幂等、超时优化
幂等 当涉及业务数据的变更,不是简单的数据查询时, 在调用方相同条件有效重复请求时,就需要保持业务系统数据之间的一致性,不管请求多少次都会返回相同的结果. 比如一个订单支付接口,第一次请求返回支付成功 ...
- 【做题笔记】洛谷P1955[NOI2015]程序自动分析
第一道蓝题祭- 注意到本题中判断的是下标,即,并不是真的判断 \(i\) 是否等于 \(j\) 显然考虑并查集,把所有标记为"相等"的数放在一个集合里,然后最后扫一遍每个数,如果有 ...
- MySQL导入含有中文字段(内容)CSV文件乱码解决方法
特别的注意:一般的CSV文件并不是UTF-8编码,而是10008(MAC-Simplified Chinese GB 2312),所以再通过Navicat导入数据的时候需要指定的编码格式是10008( ...
- Python,正则表达式 - (?:)示例
例如正则表达式a(?:b),匹配后没有包含'b'的分组 >>> string 'ab ac' >>> import re >>> string = ...
- jQuery 源码解析(三十) 动画模块 $.animate()详解
jQuery的动画模块提供了包括隐藏显示动画.渐显渐隐动画.滑入划出动画,同时还支持构造复杂自定义动画,动画模块用到了之前讲解过的很多其它很多模块,例如队列.事件等等, $.animate()的用法如 ...