基于Debian10的NAS系统配置
- 系统概述
-
- 系统配置简介
- Debian10的镜像下载与安装
- 系统配置准备
- oh my zsh安装
- ssh远程访问
- 开机自动登录root
- 花生壳远程ssh
- Frp
- 图形化界面卸载
- 网路配置
- 磁盘相关命令
- 软件安装
- Docker安装
- 虚拟环境
-
- Jellyfin安装配置
- Samba安装配置
- NFS
- 网口
- 安装配置aria2
- mysql安装配置
- 软路由流量分发
- nextCloud安装配置
- 其他命令
- 局域网网速测试
- 网络端口查看
- screen命令的使用
- 定时自动关机
- 开机启动管理工具
- 小工具集合
系统概述
需求分析
- 因为个人作为影迷,有较大的观影需求,同时也有兼职剪辑。考虑苹果新M1的macbook air的剪辑配置,唯一缺陷就是容量太小又不可拓展,所以搭配nas作为存储延伸。
- 为何选择Debian,因为作为计算机专业,折腾的过程也是学习的过程,linux可以有更多功能选择,不需要装虚拟机就能All in One,可以做服务器,我写了一个网站可以挂在上面让大家访问。也可以做软路由,安装***等转发流量就可以全局。
- 该教程主要为提供思路,记录一些配置过程使用的命令,也作为自己备忘录,具体详细过程无法一一描述,若有建议或者疑问,欢迎大家一起讨论
功能实现
- 挂载硬盘作为nas存储视频等文件
- 部署网站供大家访问
- 作为软路由转发流量
系统配置简介
- 梅捷N3150L主板
- CPU是N3150(4核6W支持AES 稍弱于J1900但可硬解4k)
- 4G内存1600HZ
- 8+14T机械硬盘+128G固态硬盘
- U盘16G作为系统盘
- TP-link WiFi6的路由器进行DDNS和端口转发
Debian10的镜像下载与安装
- 镜像链接:Debian原网站镜像
- U盘工具:Ventory
- 用另一个U盘作为系统盘(可节约一个SATA接口
系统配置准备
oh my zsh安装
装机第一件事就是把眼睛照顾好
apt-get install zsh
chsh -s /bin/zsh
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
git clone git://github.com/joelthelion/autojump.git
cd autojump
./install.py
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
vim ~/.zshrc配置文件的最后一行加上. /usr/share/autojump/autojump.sh以使得autojump生效,最后再source ~/.zshrc重新编译zsh,此时autojump已经生效。其他同理
ssh远程访问
cd /etc/ssh
nano sshd_config
//添加一行 PermitRootLogin yes
//ctrl x保存退出
将#PasswordAuthentication no的注释去掉,并且将NO修改为YES
完成上述更改后,请重新启动SSH服务器:
/etc/init.d/ssh restart 或者service ssh start
添加开机自启动
update-rc.d ssh enable
开机自动登录root
- 进入root用户,编辑文件/lib/systemd/system/getty@.service
nano /lib/systemd/system/getty@.service
//ctrl x保存
- 设置字段ExecStart
ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM//添加或修改这行数据
//ctrl x保存
花生壳远程ssh
由于只有1G我只将其作为ssh远程控制的工具
wget http://dl-cdn.oray.com/hsk/linux/phddns-5.0.0-amd64.deb
dpkg -i phddns-5.0.0-amd64.deb
phddns start
注册账号
添加设备中粘贴SN码
然后添加映射,我选的tcp的ssh模版
Frp
cd /usr/local/bin
wget -O frpc https://getfrp.sh/d/frpc_linux_amd64
chmod 755 frpc
ls -ls frpc
md5sum frpc
frpc -v
vim /etc/frpc.ini
```shell
[common]
protocol = tcp
server_addr = cn-cd-dx-1.natfrp.cloud
server_port = 7000
tls_enable = true
user = ***
token = SakuraFrpClientToken
sakura_mode = true
use_recover = true
new_encryption = false
tcp_mux = true
pool_count = 1
[movie]
type = http
local_ip = 0.0.0.0
local_port = 8096
custom_domains = movie.gawain.site
[aria2]
type = http
local_ip = 0.0.0.0
local_port = 9091
custom_domains = aria2.gawain.site
frpc -c /etc/frpc.ini
vim /lib/systemd/system/frpc.service
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frpc -c /etc/frpc.ini
ExecReload=/usr/local/bin/frpc reload -c /etc/frpc.ini
[Install]
WantedBy=multi-user.target
图形化界面卸载
图形化界面比较占内存,而我多数时候SSH也用不上,所以将其卸载
apt autoremove gdm3
apt autoremove --purge gnome*
//reboot重启
网路配置
- 向运营商申请外网IP,一般打电话就行
- 申请一个域名,我用的阿里的
- 因为拨号上网IP不会固定,所以需要路由器的DDNS通过域名绑定IP访问
- 在路由器的虚拟服务器上面设置端口转发,可以转发被禁的80或者443端口
磁盘相关命令
- 磁盘分区
fdisk -l
//查看所有磁盘信息
fdisk /dev/sdb
//对sdb磁盘进行分区
若磁盘大于2T,需要parted命令分区
parted /dev/sdb //分区磁盘sdb
mklabel gpt //parted命令只能针对gpt格式的磁盘进行操作
mkpart ext4 0% 1.5T//将0到1.5T划为一个分区
(parted) p //查看所有磁盘信息
mkfs -t ext4 /dev/sdb1 //格式化分区sdb1
- 查看当前已挂载磁盘
df -h
- 挂载磁盘
mount /dev/sdb1 /data
//将磁盘sdb1挂载到相同的逻辑文件/data下,卸载则换为umount
- 开机自动挂载磁盘
nano /etc/fstab
//打开fstab文件写入命令
UUID=b394c406-5c0e-4e16-9d80-a212c34a8d32 /mnt ext4 defaults 0
/dev/sdb1 /root/Film ext4 defaults 0
/dev/sdb2 /root/Material ext4 defaults 0
- 磁盘通电时间等详细参数
apt-get install smartmontools
//下载磁盘测试工具
smartctl -A /dev/sdb
//测试sda磁盘
- 磁盘读写速度
hdparm -Tt /dev/sda
//sda换为测试的硬盘
- 磁盘清理查看
ncdu
//可按照文件占用大小排序查看
软件安装
Docker安装
curl -sSL https://get.daocloud.io/docker | sh
//ctrl x保存
虚拟环境
conda
比起virtualenv,conda最大优点是可以自动安装指定新版本python,不用本地环境
wget -4 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
sh Miniconda3-py39_4.9.2-Linux-x86_64.sh
source ~/.zshrc
conda create --n py39 python=3.9
conda activate py39
Jellyfin安装配置
docker pull nyanmisaka/jellyfin
docker run -d -p 8096:8096 -v /jellyfin/config:/config -v /mnt/AllMedia:/media -v /mnt/Other:/Film3 -v /mnt/Film:/Film2 --restart=always nyanmisaka/jellyfin
docker update --restart=always "镜像id或容器别名" //开机自启动对应镜像
- -p 后面是jellyfin服务的端口号,安装时可以指定,这里使用默认的8096;
- -v 后面是指定的配置路径,比如 /mnt/film 就是我原来的影音物理路径,/media就是jellyfin的映射路径
- 可以通过http://本地ip:8096 来访问jellyfin服务了,后期也可以转发端口在外网用域名访问
Samba安装配置
Debian终端
apt install samba
nano /etc/samba/smb.conf
//最后加上
[share]
comment = Provides Filesystem For Anyone
path = /share
browsable = yes
create mask = 0777
directory mask = 0777
read only = no
writable = yes
guest ok = yes
public = yes
forceuser=root
forcegroup=root
//创建共享目录并设置权限
mkdir /share
chmod -R 0777 /share
//客户端
apt install smbclient
//重启服务
systemctl restart smbd.service && systemctl restart nmbd.service
Windows终端
打开我的电脑,地址栏输入 \192.168.. (NAS所在局域网IP)会看到几个文件名
- 注意,window上面映射地址不是挂载地址,而必须与上面文件累的path路径名称(/share)完全一致,包括大小写,不然会提示拼写错误
- iPad也可用nPlayer的SMB配置访问这个地址
NFS
Samba配置太繁琐了,现在也不用Windows
apt-get install nfs-kernel-server
apt-get install nfs-common
vim /etc/exports
/mnt *(rw,fsid=0,sync,no_root_squash,no_subtree_check,insecure)
/mnt/Other *(rw,sync,no_root_squash,no_subtree_check,insecure)
/mnt/AllMedia *(rw,sync,no_subtree_check,no_root_squash,insecure)
systemctl restart nfs-kernnel-service
mount -t nfs -o nolocks 192.168.101.111:/mnt /Users/gawaintan/NAS
注意:*代表所有ip都允许访问,/mnt作为父级目录fsid=0只能出现一次,no_root_squash授予root权限,谨慎使用,insecure为了我避免客户端permission denied
网口
我买了块千兆网卡,但是装机插另一个网口了,导致开机默认不启动
所以需要设置一下
vim /etc/network/interfaces
auto enp2s0
iface wlan0 inet static
address 192.168.101.111
netmask 255.255.255.0
gateway 192.168.101.1
安装配置aria2
…不怎么用了
mysql安装配置
在Debian的默认存储库中不可用,MariaDB是Debian 10中的默认数据库系统,我将介绍如何安装mysql8
wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
apt install ./mysql-apt-config_0.8.13-1_all.deb
sudo apt update
sudo apt install mysql-server
等待安装,完成后用 systemctl status mysql检验安装是否成功
运行mysql_secure_installation设置密码,按照喜好选择Y
mysql -u root -p输入设置,密码登陆
软路由流量分发
nextCloud安装配置
其他命令
局域网网速测试
apt-get install iperf3
iperf3 -s
Iperf3 -c 192.168.101.119
网络端口查看
apt-get install net-tools
ethtool enp2s0
screen命令的使用
方便切换进程,可以在一个进程未完成的时候将其挂起
screen
screen -ls
screen -d id
screen -r id
定时自动关机
因为寝室0:30停电,然后设置了主办来电自动开机
vim /etc/crontab
22 0 * * * root /sbin/halt
开机启动管理工具
apt-get install sysv-rc-conf
sysv-rc-conf --level 345 mysql on
sysv-rc-conf
小工具集合
- htop用于观察系统占用资源情况
- ncdu /目录 可将该目录下所有文件从大到小排序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)