pi
,密码是 raspberry
ssh
的空白文件就行了。然后,重启就可以ssh
访问了。sudo raspi-config
,启用root,
开启ssh, 扩容,Internationalisation Options
,==> change_locale
,在Default locale for the system environment:
中选择 zh_CN.UTF-8
;apt sources
)近期(2022年底)而言,可能豆瓣的软件源速度更快一些。
nano /etc/apt/sources.list
deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
sudo apt update && apt upgrade -y #更新系统软件 并 更新已安装的包
sudo apt-get install fuse-utils ntfs-3g
sudo fdisk -l
看出编号,如/dev/sda1
;e2label /dev/sda1 nasdisk
sudo nano /etc/.fstab
,#在最后一行添加如下内容,LABEL=nasdisk /home/pi/nas ext4 defaults,nofail 0 0
umount /dev/sda1
mkfs.ext4 /dev/sda1
或者
umount /dev/sda1
mkfs.ntfs /dev/sda1
sudo apt install ttf-wqy-zenhei
sudo apt install scim-pinyin
sudo apt install samba
sudo nano /etc/samba/smb.conf
或者通过 VNC Viewer 远程登陆
sudo mousepad /etc/samba/smb.conf
smb.conf
在文档末尾加入:
# 设置第一个(私有)samba服务
[NAS_YIN]
# 共享文件夹说明
comment = YIN
# 允许登录的用户身份
valid users =pi,root
# 禁止访问的用户
# NAS 为他人使用的账户,但是又不想被他们看到,所以就禁止NAS用户访问。
invalid users=pub
# 共享文件夹目录
path = /home/pi/nas
# 可被其他人看到资源名称(非内容)
browseable = yes
# 可写
writable = yes
# 可读
read only=no
# 新建文件的权限为 777
create mask = 0777
# 新建目录的权限为 775
directory mask = 0777
# guest访问,无需密码
public = no
# 设置第二个(公共)samba服务
[NAS_PUB]
comment= PUB
valid users =pi,root,pub
path =/home/pi/nas/public
browseable=yes
writeable =yes
read only=no
create mask =0776
directory mask=0776
sudo smbpasswd -a pi
sudo adduser pub
sudo passwd pub
sudo smbpasswd -a pub
输入两遍密码,即可。
重启samba
服务:
sudo systemctl restart smbd
当然你有防火墙的话,需要开放137-139端口和455端口。
sudo ufw allow 137, 138, 139, 455
sudo apt install ufw
sudo ufw status
active
是开启 inactive
是未开启
sudo ufw enable
sudo ufw disable
sudo ufw allow 8090
详细操作,见《树莓派 防火墙开启关闭、开放端口号》
sudo mkdir /home/pi/nas
sudo mount -o uid=nas,gid=nas /dev/sda1 /home/pi/nas
sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
记下长号:14fbcd17-c15c-43d4-9e86-5b76c2806335
sudo nano /etc/fstab
在文档的末尾,添加硬盘UUID和挂载目录:
UUID=14fbcd17-c15c-43d4-9e86-5b76c2806335 /home/pi/nas/ ntfs defaults,auto,users,rw,nofail 0 0
或者
UUID=nasdisk /home/pi/nas/ ntfs defaults,auto,users,rw,nofail 0 0
至此搭建nas
完成,重启树莓派。
即可远程访问挂载在树莓派上的硬盘,并可以进行文件的读取和写入。
html
目录权限,例如:
sudo chown -R -v www-data:www-data /var/www/html
nas
目录权限,例如:
sudo chown -R -v pi:pi /home/pi/nas
参考文献:
1-《Aria2 安装和使用全教程》
2-《mac 使用Aria2》
3-《linux aria进程,Linux运维知识之Ubuntu下Aria2搭建下载机:Aria2图形管理》
4-《树莓派部署aria2远程下载器教程》
5-《在电脑上配置 Aria2 并为其配置 Web 界面》
6-《树莓派搭建私人NAS》
7-《极客DIY:使用树莓派制作一套“NAS+私有云盘+下载机”》
离线下载我们使用Aria2来实现,Aria2非常轻量级,且支持各种链接和种子下载,以及多线程下载。
Aria2
sudo apt install aria2
Aria2
配置文件可以存放在 /home/pi/.config/aria2
目录下
mkdir /home/pi/.config/aria2
cd /home/pi/.config/aria2
touch aria2.conf
touch aria2.session
aria2.conf
就是启动 aria2
的配置文件;
aria2.session
用于保存退出时候未完成的一些会话任务等。
不同的启动方式,可以有不同的配置方式。
编辑 aria2.conf
,往里面写入以下内容
里面很多内容都注释掉了,可以按照自己的需求进行修改。
### /home/pi/.config/aria2/aria2.conf
#后台运行
daemon=true
## 文件保存相关 ##
# 文件的保存路径, 默认: 当前启动位置
dir=/home/pi/nas/downloads
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=16M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=falloc
# 断点续传
continue=true
## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=15
# 整体下载速度限制, 运行时可修改, 默认:0(不限制)
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0(不限制)
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0(不限制)
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0(不限制)
#max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=true
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=10
## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60
## RPC相关设置 #
## RPC相关设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许外部访问, 默认:false
rpc-listen-all=true
# RPC端口, 仅当默认端口被占用时修改
# rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=
# 链接密码,设置为你自己的即可
rpc-secret=your_passwd
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
input-file=/home/pi/.config/aria2/aria2.session
save-session=/home/pi/.config/aria2/aria2.session
其中如果想要使用远程ui
界面的话,rpc
的配置项目enable-rpc
和rpc-listen-all
要设置为true
。
现在可以试试看使用配置方式启动aria2
,看能否成功启动。
aria2c --conf-path=/home/pi/.config/aria2/aria2.conf
若成功启动,输入如下命令
sudo systemctl status aria
安装aria2
成功之后需要配置开机启动,这样我们每次启动树莓派的时候就不需要手动去启动aria2
服务了。
创建并编辑aria.service
文件。
sudo vim /lib/systemd/system/aria.service
往里面写入以下内容:
[Unit]
Description=Aria2 Service
After=network.target
[Service]
User=pi
Type=forking
ExecStart=/usr/bin/aria2c --conf-path=/home/pi/.config/aria2/aria2.conf
[Install]
WantedBy=multi-user.target
设置开机启动
sudo systemctl daemon-reload
sudo systemctl enable aria
或者有其他完全不同的安装与配置方式:
例如,参见《Ubuntu安装aira2及开机启动配置》
sudo nano /etc/rc.local
在exit 0前添加一行指令
sudo /usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf -D &
保存并退出
`这两种开机启动的方法不能同时使用!!!`
设置之后可以重启以下树莓派,然后再使用下面的命令查看下服务是否有启动。
sudo systemctl status aria
当我们完成安装和配置了aria2
之后,我们还需要一个界面,否则使用起来也太不方便了,这里使用webui-aria2
这个第三方的web
界面,https://github.com/ziahamza/webui-aria2.git
。
首先我们需要配置web
服务,这里使用nginx
,如果没有安装,可以现安装上,并启动nginx服务。
使用如下命令将 webui-aria2
下载到本地
cd /var/www/html/
sudo git clone https://github.com/ziahamza/webui-aria2.git
# 或者
sudo git clone http://github.com/wzhy90/yaaw
然后在同一个局域网内,访问如下地址,树莓派的ip地址替换成你自己的树莓派的ip地址。
http://192.168.0.132/webui-aria2/docs/index.html
# 或者
http://192.168.0.132/yaaw/
如果顺利,将会看到如下界面。
如果界面当中出现rpc
连接失败等错误提示,可以查看一下aria2.conf
配置是否写错。博主之前就是因为配置信息写错,一直导致网页提示连接失败的信息。
安装 nginx
需要安装(静态网站,一个nginx
就够了)
安装前,可能需要准备一些依赖项。
先做准备工作,安装一些依赖,准备工作
(1)安装gcc
, g++
的依赖库
sudo apt-get install build-essential
sudo apt-get install libtool
(2)安装pcre
依赖库
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
(3)安装zlib
依赖库
apt-get install zlib1g-dev
(4)安装ssl
依赖库
apt-get install openssl
(5) 安装 nginx
sudo apt install nginx
执行完以上操作后,浏览器输入服务器的IP地址,出现以下画面说明Nginx安装成功。
接下来,进入/etc/nginx
,我们重点关注sites-available
和sites-enabled
翻译过来就是【可以启用的站点】和【已经启用的站点】
直接修改sites-available
文件夹下的default
来设置第一个站点。
sudo nano /etc/nginx/sites-available/default
server {
listen 8080; #监听端口
server_name 192.168.1.132; #监听地址
root /home/ubuntu/tennis_match_backstage/dist; #/html目录
index index.html; #设置默认页
location ~ /example1/ {
proxy_pass http://127.0.0.1:5000; #请求转向
}
}
~ : 表示uri包含正则表达式,且区分大小写。
~* : 表示uri包含正则表达式,且不区分大小写。
= : 表示uri不含正则表达式,要求严格匹配。
nginx如何配置代理转发,参见 https://www.php.cn/nginx/425693.html
我们了解Nginx的匹配转发机制后,接下来的问题就是:哪些需要转发?哪些不需要转发?怎么来标识?
一般来讲,要转发的都是发送(外网)请求的url,因为发送请求才会出现跨域问题,出现跨域问题才会使用反向代理,要需要使用反向代理才会使用Nginx。
那么,页面url和请求url怎么区分呢?
不同的项目,不同的团队可能有截然不同的方法,大多会选择加一个字段来标识,正好用来给Nginx匹配。
修改default文件如下:
1、yaaw 或 webui-aria2/docs 是拟部署的项目,要放到/var/www/html目录下,不能放在/home/pi下,因为 pi 没有权限。
2、一定要保证修改后的default 文件一定要放在/etc/nginx/sites-available。
设置完成后,即可使用指令启动服务
sudo /usr/sbin/nginx -t //检查配置是否正确
sudo /usr/sbin/nginx //启动服务
sudo /usr/sbin/nginx -s reload //重新载入配置
如果运行指令sudo /usr/sbin/nginx时报错(Address is in use或者 cant bind)则可能是端口已被占用。解决方案:
netstat -aptn # 查看端口使用情况
如果没有安装netstat需要先安装netstat
sudo apt install netstat
查看端口使用情况,更换配置中所使用的端口再尝试。如果还是报错,可用指令查看是哪些进程占用了端口,然后我们将其干掉(例如:sudo kill -9 $(sudo lsof -i tcp:80 -t)),再执行启动服务并载入配置。部署完成后,访问配置中的ip地址,即可看到部署的页面
修改链接设置
这里只需要改一下,主机到你的树莓派ip
,emm localhost
不行,至少在我这里不可以。
以及 令牌为你配置文件 rpc-secret=your_passwd
设置的密码
请参见《树莓派3b+ 配置Nginx,并成功部署前端项目》。
这样子一个离线下载的环境就搭建好了。
BaiduPSC-Go
操作百度网盘BaiduPCS-Go
简介BaiduPCS-Go
是一种仿 Linux shell
文件处理命令的百度网盘命令行客户端,可以在Windows
, macOS
, linux
, 移动设备等各种平台使用,是一款百度网盘神器了。据说还能突破网盘下载速度的限制,这个我倒没有特别去试,毕竟还是鼓励大家充个会员,稍微支持一下百度网盘的咯。
因为是全平台使用,所以如果大家有兴趣也可以在自己的电脑上使用,具体的操作方法和安装包都在BaiduPCS-Go
的作者GitHub
详情页面。
本来,网上更多的教程都是推荐bypy
。但是从bypy
作者的GitHub
发布页上来看,该项目已经停止维护。而且我自己尝试用的时候也经常遇到问题。后来发现BaiduPCS-Go
,相较而言似乎更好用些。
在BaiduPCS-Go
的发布页找到符合自己硬件的压缩包。
这里需要注意两点:
虽然树莓派很像一个桌面系统,但它的CPU
其实是arm
架构。
BaiduPCS-Go
的linux-arm64
版本似乎不能在树莓派中运行,我们需要的是linux-armv5
或linux-armv7
版本
git clone https://github.com/qjfoidnh/BaiduPCS-Go.git
或者
curl https://armada.ifz.ru/rpi-2020-02-10/armv6h/community/baidupcs-go-3.6.1-1-armv6h.pkg.tar.xz
curl https://armada.ifz.ru/rpi-2020-02-10/armv7h/community/baidupcs-go-3.6.1-1-armv7h.pkg.tar.xz
我下载的是 BaiduPCS-Go-v3.5.6-linux-armv7.zip
。下载好之后,将压缩包解压缩到 /opt
目录中。
打开终端,运行命令
/opt/BaiduPCS-Go-v3.5.6-linux-armv7/BaiduPCS-Go login
即可按照提示,输入用户名密码和验证码之类的登录到百度网盘。
注意:这里的BaiduPCS-Go-v3.5.6-linux-armv7
是文件夹的名字。你可以自定义,比如修改为BaiduPCS-Go
,或者其他任何你喜欢的名字。另外,运行前注意检查一下版本号,我用的是当前最新版本3.5.6
,但保不齐人家不会更新呀,你就要用新的版本号来代替我的这个版本号。不过更保险的方式是,点进这个目录里面,找到BaiduPCS
这个文件,右键选择复制路径。然后在终端中粘贴命令即可。
在终端中用命令行运行程序虽然可行,但是很繁琐,需要记住程序的路径。说实在的,百度网盘这东西并不是那么常用,一旦忘记还要重新去找。而且即便记得住,那么长的路径打起来也很痛苦。如果把文件保存在根目录下就会面临文件整理的痛苦。有没有一个办法可以让我们的命令容易记,而且方便输入呢?
答案是当然的咯。就是改变环境变量。相信学习过python
的朋友对这个过程都很熟悉了吧。修改环境变量,系统会预先加载这些文件夹,如果运行的程序在这个文件夹里面,就能正常运行啦。
Linux
系统中修改环境变量的方法有很多方法,主要是修改下面两个目录中的文件:
系统位置,/etc
目录下的 bashrc
、 profile
、 environment
三个文件
用户目录(root
或pi
)下的 .bashrc
、 .bash_profile
两个文件(还记得吧,在Linux
系统中,文件名以“.”
开头的文件是隐藏文件)。
但是如果直接修改这些文件会面临一些问题,并不建议直接修改。比较推荐的方法是在 /etc/profile.d
目录下创建一个自定义脚本。
创建并编辑脚本:
sudo nano /etc/profile.d/custom.sh
在脚本中写入如下内容:
alias bdy='BaiduPCS-Go'
export PATH=$PATH:/opt/BaiduPCS-Go-v3.5.6-linux-armv7
第一行 alias bdy='BaiduPCS-Go'
的意思是用“bhy”
这个缩写代替“BaiduPCS-Go”
这个比较长而且大小写混杂不容易输入的命令。你当然也可以把它改成一个你喜欢的简称。
第二行 export PATH=$PATH:/opt/BaiduPCS-Go-v3.5.6-linux-armv7
指的是将 /opt/BaiduPCS-Go-v3.5.6-linux-armv7
这个路径加入到环境变量中。
然后还是,ctrl+o
保存,回车确定,ctrl+x
退出。
在终端中输入一条命令,让系统应用这条变化:
source /etc/profile.d/custom.sh
然后运行一条命令试一下是否成功(如果之前没有登陆百度云,也可以用 bdy login
来测试):
bdy quota
最后返回网盘的空间和占用情况,配置成功。
注:远程桌面似乎权限很低,每当重新打开一个终端就要重新输入 source /etc/profile.d/custom.sh
来更新环境变量信息,特别不方便。如果在shell中进行相关操作就没有这个问题,只要更新一次,以后直接用 bdy <指令>
的方式就可以顺利运行。其实不只是这里,很多事情远程桌面都做不了。所以我还是建议大家用树莓派直接连键鼠显示器操作。如果非要远程的话,最好用shell操作。都已经用Linux
了,说明你已经有了一定的代码基础,能用命令行办到的就输命令呗。
BaiduPCS-Go
的基本操作更多的操作细节,还是参考作者在GitHub发布页上的说明。
bdy login
#登陆账号
bdy login -bduss=
#用百度 BDUSS 来登录百度帐号
bdy su
#切换用户
bdy ls
#列出所有文件
bdy download <文件/目录路径1> <文件/目录2> <文件/目录3>...
#下载文件。
如需下载多个不同的文件/目录,它们之间需要用空格分隔开。因为这条命令很常用,作者很贴心地给这条命令引入了一个简写:bdy d <文件/目录路径1>
bdy logout #退出账号
bdy config
# 显示配置
bdy config set
# 设置配置
默认配置中是不启用https
的,可以通过如下命令启用https
:
bdy config set --enable_https
默认的下载目录是当前用户的 download
目录,可用如下命令修改下载目录(需要把里面的 //home/pi/nas/baidu_netdisk
替换为你想要设置的下载目录):
bdy config set --savedir /home/pi/nas/baidu_netdisk
BaiduPCS-Go 百度网盘客户端
[树莓派]使用 BaiduPCS-Go 实现百度云盘的下载机
《树莓派无外设开发三:自动连接无线网》 无线网络的设置与开启。