课程留下的东西趁机黑了一波23333,搞到一台最新树莓派3B+,正好手上有2个移动硬盘,加上学校的静态IP,准备搭建一个简单的NAS服务器自己玩,顺便结合transmission作为下载机。

系统烧录

原本我打算使用ubuntu的,然而3B+硬件太新了目前还没有官方系统,虽然wiki里有些解决方法然而我还是没能成功点亮……有兴趣的可以试试:https://wiki.ubuntu.com/ARM/RaspberryPi
后来我就用的官方raspbian系统了,毕竟是亲儿子还有配置程序可以用,镜像下载地址:https://www.raspberrypi.org/downloads/raspbian/ 我这里用的是无桌面系统的LITE版本。然后就是常规操作刷系统了:

系统配置

这里介绍无显示器的设置方法,有的话可以略过。
在烧好系统的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

然后在移动硬盘上创建两个文件夹DownloadDownloadCache
配置权限

上面给的链接多两个目录权限赋予,但我是在挂载的移动硬盘上搞的,所以就不需要另外给权限了

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
修改用户名和密码的方法:

  1. 先停止服务: sudo service transmission-daemon stop
  2. 修改配置文件,下面两项分别是用户和密码,你看到这个是加密的密码,没关系直接把密码改为你想要的密码明文就可以:
    1
    2
    “rpc-username”: “transmission”,
    “rpc-password”: “{2dc2c41724aab07ccc301e97f56360cb35f8ba1fGVVrdHDX”,
  3. 再此启动服务 :sudo service transmission-daemon start,启动的时候transmission会自动把新密码加密。

搞定收工。