背景
宿舍無線網路由器分配的IP段屬于內網IP,無法簡單架設NAS使用,因此借用外網服務器來做內網穿透,可以實現宿舍wifi內高速遠程文件系統(tǒng),公網穩(wěn)定NAS.
架構
硬件
- Raspberry 3b+ (NAT內)
- 阿里云學生服務器 (公網IP)
軟件
- 內網穿透: frp
- NAS實現: samba
- DLNA實現: miniDLNA
- 離線下載實現: aira2
- 系統(tǒng): Debian10.0 64位
安裝
1. 掛載移動硬盤
lsblk -f
有用的輸出如下
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
└─sda1 ntfs 嘚锝嘚 0FD108960FD10896 55.9G 88% /mnt/hd1
查找到移動硬盤的設備為/dev/sda, 對應第一分區(qū)為/dev/sda1,第一分區(qū)uuid為0FD108960FD10896
修改/etc/fstab添加如下行,令其開機掛載
UUID=0FD108960FD10896 /mnt/hd1 ntfs defaults 0 0
創(chuàng)建掛載點文件夾
sudo mkdir /mnt/hd1
重啟樹莓派查看是否成功
sudo shutdown -r now
2. 配置NAS
安裝配置文件共享軟件Samba4
sudo apt install samba smbfs
sudo nano /etc/samba/smb.conf
重寫配置文件:
[global]
#與主機名相關的設置
workgroup = WORKGROUP
netbios name = PI-smb-server
serverstring = Samba Server Version %v
#與日志文件有關的設置
logging = file
log file = /var/log/samba/log.%m
max log size = 50
#與密碼相關的設置
idmap config * : backend = tdb
cups options = raw
#打印機加載方式
load printer = no
#崩壞處理
panic action = /usr/share/samba/panic-action %d
#授權設置
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
#共享文件夾名share
[hd1]
#path為硬盤根路徑
path = /mnt/hd1
available = yes
browseable = yes
public = yes
writable = yes
valid user = samba
write list = samba
create mask = 0777
directory mask = 0777
新建Samba訪問用戶,并重啟生效
sudo useradd samba
sudo smbpasswd -a samba
sudo systemctl restart smbd.service
安裝配置DLNA軟件minidlna
sudo apt install minidlna
sudo nano /etc/minidlna.conf
添加如下內容
media_dir=A,/mnt/hd1/music
media_dir=P,/mnt/hd1/picture
media_dir=V,/mnt/hd1/vedio
#配置minidlna的數庫數據的存放目錄
db_dir=/var/cache/minidlna
#配置日志目錄
log_dir=var/log/
創(chuàng)建路徑重啟服務
mkdir /mnt/hd1/music && mkdir /mnt/hd1/picture && mkdir /mnt/hd1/vedio
sudo systemctl restart minidlna.service
3. 離線下載實現
安裝配置Aira2
sudo apt-get install aria2
創(chuàng)建下載目錄
mkdir /mnt/hd1/download
創(chuàng)建配置文件
sudo mkdir /etc/aria2 #新建文件夾
sudo touch /etc/aria2/aria2.session #新建session文件
sudo chmod 777 /etc/aria2/aria2.session #設置aria2.session可寫
sudo nano /etc/aria2/aria2.conf #創(chuàng)建配置文件
寫入如下內容
dir=/mnt/hd1/download
disable-ipv6=true
#打開rpc的目的是為了給web管理端用
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
#斷點續(xù)傳
continue=true
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
#最大同時下載任務數
max-concurrent-downloads=20
save-session-interval=120
# Http/FTP 相關
connect-timeout=120
#lowest-speed-limit=10K
#同服務器連接數
max-connection-per-server=10
#max-file-not-found=2
#最小文件分片大小, 下載線程數上限取決于能分出多少片, 對于小文件重要
min-split-size=10M
#單文件最大線程數, 路由建議值: 5
split=10
check-certificate=false
#http-no-cache=true
啟動aira2
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
設置開機啟動,
sudo nano /etc/systemd/system/aria2.service
寫入如下配置
[Unit]
Description=Aira2 Daemon
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
保存后設置開機啟動
sudo systemctl enable aria2.service
aria2-webui
4. 端口穿透
frp: https://github.com/fatedier/frp/releases
由于一端是樹莓派(ARM)另一端是阿里云服務器(AMD64)
所以下載兩個版本包分別在樹莓派和阿里云服務器上安裝
tar -xvf frp_0.29.0_linux_arm64.tar.gz
端口
- minidlna: 8200
- aria2: 6800