树莓派3B+搭建NAS服务器和BT下载机
课程留下的东西趁机黑了一波23333,搞到一台最新树莓派3B+,正好手上有2个移动硬盘,加上学校的静态IP,准备搭建一个简单的NAS服务器自己玩,顺便结合transmission作为下载机。
系统烧录
原本我打算使用ubuntu的,然而3B+硬件太新了目前还没有官方系统,虽然wiki里有些解决方法然而我还是没能成功点亮……有兴趣的可以试试:https://wiki.ubuntu.com/ARM/RaspberryPi
后来我就用的官方raspbian系统了,毕竟是亲儿子还有配置程序可以用,镜像下载地址:https://www.raspberrypi.org/downloads/raspbian/ 我这里用的是无桌面系统的LITE版本。然后就是常规操作刷系统了:
- TF卡转USB插上电脑,磁盘管理器或者DG删掉所有分区
- 用SD Card Formatter格式化
- 用Win32DiskImager把系统刷进去
系统配置
这里介绍无显示器的设置方法,有的话可以略过。
在烧好系统的SD卡boot盘下新建一个空的ssh
文件(没有后缀,可以通过新建文本文件然后删掉后缀名实现),这样就可以在初始化时打开ssh。
有线连接树莓派和路由器(如果要无线的自行修改配置文件),启动之后等一会让它初始化,然后通过路由管理界面找到ip,ssh连接就行了。默认用户名pi
密码raspberry
,等登陆完成后输入
sudo raspi-config
这里需要调几个设置:
- 用户密码,这个自己改
- 区域设置,把TimeZone改成Shanghai,Wifi country改成China
如果使用Wifi必须先把区域设置调整为China,否则不同国家信道标准不同可能搜不到。
- 网络,如果用有线连接就忽略,如果要无线网就进去设置WIFI的SSID和密码,然后就会自动连接了。
- 接口选项,保持SSH开启就行。
- 其他选项自行调整
搞完之后应该就能上网了,更新一下系统,装个vim
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim
然后reboot
重启一下。
fail2ban或证书登陆
下面就是SSH的安全问题了,可以用fail2ban或者证书登陆,这里我懒得复制证书了就用fail2ban把,不过还是推荐证书登陆更安全。
安装:
apt-get install fail2ban
配置一下文件:
vim /etc/fail2ban/jail.conf
里面有几个配置自己改一下
ignoreip 白名单ip
bantime ban的时间
maxretry 最大尝试次数
findtime 检测多少时间内的尝试次数
然后重启一下服务
/etc/init.d/fail2ban restart
这个时候可以自己试试了注意小心把自己锁外面
DMZ主机
因为我想让它可以被外界访问,加上学校给的静态IP,不想用网线拖着就连的路由器,那么就需要设置DMZ主机让它暴露在外网,进入路由器设置,如果有的话可以同时把内网ip和mac绑定住,这样树莓派ip就不会换了,然后把它设置为DMZ主机即可,用另一台电脑ping一下就可以了
为了免得记ip我DNS解析到一个子域名,接着就能用这个域名访问了。
移动硬盘挂载
因为我的移动硬盘是NTFS的。首先先安装NTFS支持:
sudo apt-get install ntfs-3g
sudo reboot
重启后使用fdisk -l
应该就能看到/dev/sda1
之类的硬盘了,接下来我们设置一下开机挂载
开机挂载会导致开机时间加长,具体表现为LED绿灯微闪,这是正常现象,等会就行了。
先建立挂载点(使用pi用户登录)
sudo mkdir /media/usbhdd
sudo chown pi:pi /media/usbhdd
当然如果有多个硬盘usbhdd
这个你可以改改后面加个数字以示区别,但每个挂载点都必须chown
给权限。
然后输入
sudo blkid
复制以下你的硬盘的UUID,然后sudo vim /etc/fstab
,添加
UUID="xxxxx" /media/usbhdd auto rw,defaults 0 0
重启就行了。
硬盘休眠
Linux默认没有硬盘休眠,理论上频繁休眠启动反而影响寿命……确实需要的话可以手动加
安装hdparm
sudo apt-get install hdparm -y
试一下你的硬盘支不支持hdparm,后面设备名可以通过sudo blkid
看到
sudo hdparm -y /dev/sda1
如果输出如下结果,就表明支持:
/dev/sda1:
issuing standby command
如果有第三行其他输出表明不支持,你可以试试hd-idle或者sdparm实现
编辑配置
sudo vim /etc/rc.local
在exit 0
前一行写入:
hdparm -B 127 -S 60 /dev/sda1
这里-S
取值设定逻辑比较奇怪,部分常见取值:
30 = 2 min 30 sec
60 = 5 minutes
120 = 10 minutes
180 = 15 minutes
241 = 30 minutes
242 = 1 hour
243 = 1.5 hours
244 = 2 hours
重启一下看看有没有生效
安装Samba
输入
sudo apt-get install samba samba-common-bin
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.back
sudo vim /etc/samba/smb.conf
把[home]
和之后的全部删掉,添加
[MyNAS]
# 说明信息
comment = NAS Storage
# 可以访问的用户
valid users = pi,root
# 共享文件的路径
path = /media/usbhdd
# 可被其他人看到资源名称(非内容)
browseable = yes
# 可写
writable = yes
# 新建文件的权限为 664
create mask = 0664
# 新建目录的权限为 775
directory mask = 0775
添加用户和密码
sudo smbpasswd -a pi
重启服务
sudo /etc/init.d/samba restart
电脑连接
打开资源管理器,电脑-映射网络驱动器,然后选好盘符,地址就是
\\域名或IP\MyNAS
然后使用用户密码登陆就行啦(是前面设置的,不一定是SSH登陆密码)
据说无良运营商会封端口,这就需要各种奇淫技巧改端口之类的了,我这静态IP无需考虑。
Transmission BT下载
参考:http://shumeipai.nxez.com/2013/09/08/raspberry-pi-bt-download-servers.html
首先安装
sudo apt-get install transmission-daemon
然后在移动硬盘上创建两个文件夹Download
和DownloadCache
配置权限
上面给的链接多两个目录权限赋予,但我是在挂载的移动硬盘上搞的,所以就不需要另外给权限了
sudo usermod -a -G debian-transmission pi
修改配置文件
/etc/transmission-daemon/settings.json
已完成的目录
"download-dir": "/media/usbhdd/Download",
未完成的目录
"incomplete-dir": "/media/usbhdd/DownloadCache",
允许Web访问的白名单地址
"rpc-whitelist": "*.*.*.*",
rpc-whitelist我为了外网访问设为了*,具体请自行设置
重启服务
sudo service transmission-daemon reload
sudo service transmission-daemon restart
然后在浏览器中访问IP/域名加 9091端口输入用户名和密码,默认都是:transmission
修改用户名和密码的方法:
- 先停止服务:
sudo service transmission-daemon stop
- 修改配置文件,下面两项分别是用户和密码,你看到这个是加密的密码,没关系直接把密码改为你想要的密码明文就可以:
1
2“rpc-username”: “transmission”,
“rpc-password”: “{2dc2c41724aab07ccc301e97f56360cb35f8ba1fGVVrdHDX”, - 再此启动服务 :
sudo service transmission-daemon start
,启动的时候transmission
会自动把新密码加密。
搞定收工。