2021基于Debian的All in One(NAS+软路由)配置教程

2023-05-16

基于Debian10的NAS系统配置

  • 系统概述
    • 需求分析
    • 功能实现
  • 系统配置简介
  • Debian10的镜像下载与安装
  • 系统配置准备
    • oh my zsh安装
    • ssh远程访问
    • 开机自动登录root
    • 花生壳远程ssh
    • Frp
    • 图形化界面卸载
    • 网路配置
    • 磁盘相关命令
  • 软件安装
    • Docker安装
    • 虚拟环境
        • conda
    • Jellyfin安装配置
    • Samba安装配置
    • NFS
    • 网口
    • 安装配置aria2
    • mysql安装配置
    • 软路由流量分发
    • nextCloud安装配置
  • 其他命令
    • 局域网网速测试
    • 网络端口查看
    • screen命令的使用
    • 定时自动关机
    • 开机启动管理工具
    • 小工具集合

系统概述

需求分析

  • 因为个人作为影迷,有较大的观影需求,同时也有兼职剪辑。考虑苹果新M1的macbook air的剪辑配置,唯一缺陷就是容量太小又不可拓展,所以搭配nas作为存储延伸。
  • 为何选择Debian,因为作为计算机专业,折腾的过程也是学习的过程,linux可以有更多功能选择,不需要装虚拟机就能All in One,可以做服务器,我写了一个网站可以挂在上面让大家访问。也可以做软路由,安装***等转发流量就可以全局。
  • 该教程主要为提供思路,记录一些配置过程使用的命令,也作为自己备忘录,具体详细过程无法一一描述,若有建议或者疑问,欢迎大家一起讨论

功能实现

  • 挂载硬盘作为nas存储视频等文件
  • 部署网站供大家访问
  • 作为软路由转发流量

系统配置简介

  1. 梅捷N3150L主板
  2. CPU是N3150(4核6W支持AES 稍弱于J1900但可硬解4k)
  3. 4G内存1600HZ
  4. 8+14T机械硬盘+128G固态硬盘
  5. U盘16G作为系统盘
  6. TP-link WiFi6的路由器进行DDNS和端口转发

Debian10的镜像下载与安装

  1. 镜像链接:Debian原网站镜像
  2. U盘工具:Ventory
  3. 用另一个U盘作为系统盘(可节约一个SATA接口

系统配置准备

oh my zsh安装

装机第一件事就是把眼睛照顾好

apt-get install zsh#安装zsh作为shell
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
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

  1. 进入root用户,编辑文件/lib/systemd/system/getty@.service
nano /lib/systemd/system/getty@.service
//ctrl x保存
  1. 设置字段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

#复制SN码
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
#启动服务的命令(此处写你的frpc的实际安装目录)
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重启

网路配置

  1. 向运营商申请外网IP,一般打电话就行
  2. 申请一个域名,我用的阿里的
  3. 因为拨号上网IP不会固定,所以需要路由器的DDNS通过域名绑定IP访问
  4. 在路由器的虚拟服务器上面设置端口转发,可以转发被禁的80或者443端口

磁盘相关命令

  1. 磁盘分区
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
  1. 查看当前已挂载磁盘
df -h
  1. 挂载磁盘
 mount /dev/sdb1 /data
 //将磁盘sdb1挂载到相同的逻辑文件/data下,卸载则换为umount
  1. 开机自动挂载磁盘
 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

 
  1. 磁盘通电时间等详细参数
 apt-get install smartmontools
 //下载磁盘测试工具
 smartctl -A /dev/sdb
 //测试sda磁盘
  1. 磁盘读写速度
 hdparm -Tt /dev/sda
 //sda换为测试的硬盘
  1. 磁盘清理查看
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
#第三部配置conda镜像
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或容器别名" //开机自启动对应镜像

  1. -p 后面是jellyfin服务的端口号,安装时可以指定,这里使用默认的8096;
  2. -v 后面是指定的配置路径,比如 /mnt/film 就是我原来的影音物理路径,/media就是jellyfin的映射路径
  3. 可以通过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   #MAC客户端自带,可不用安装

vim /etc/exports
#添加 *代表所有ip访问
/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#重启nfs服务
#Mac挂载命令
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    #设置网卡使用静态IP
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 
#下载完成后,以具有sudo权限的用户身份安装发行包:
apt install ./mysql-apt-config_0.8.13-1_all.deb
#选择MySQL Server & Cluster(当前选择:mysql-8.0)确定安装

#通过运行以下命令更新包列表并安装MySQL服务器包:
sudo apt update
sudo apt install mysql-server

等待安装,完成后用 systemctl status mysql检验安装是否成功
运行mysql_secure_installation设置密码,按照喜好选择Y
mysql -u root -p输入设置,密码登陆

软路由流量分发

nextCloud安装配置

其他命令

局域网网速测试

#Linux端
apt-get install iperf3
iperf3 -s#将linux作为服务器端
#windows端,官网下载iperf3,cmd命令到该目录下
Iperf3 -c 192.168.101.119

网络端口查看

apt-get install net-tools #新的系统可能不带该命令,也无法通过install ifconfig下载,只能用该命令

ethtool enp2s0#查看网口信息

screen命令的使用

方便切换进程,可以在一个进程未完成的时候将其挂起

screen
screen -ls#展示所有进程
screen -d id#detach该进程,可用切换远程终端访问
screen -r id #进入该进程

定时自动关机

因为寝室0:30停电,然后设置了主办来电自动开机

vim /etc/crontab
#最后添加一行代表0:22自动关机
22  0    * * *   root    /sbin/halt

开机启动管理工具

apt-get install sysv-rc-conf
sysv-rc-conf --level 345 mysql on #mysql可换其他服务
sysv-rc-conf#可查看选择启动权限

请添加图片描述

小工具集合

  1. htop用于观察系统占用资源情况
  2. ncdu /目录 可将该目录下所有文件从大到小排序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021基于Debian的All in One(NAS+软路由)配置教程 的相关文章

  • jenkins 面试题

    1 jenkins是什么 Jenkins是一个开源的 可扩展的持续集成 交付 部署 xff08 软件 代码的编译 打包 部署 xff09 的基于web界面的平台 允许持续集成和持续交付项目 xff0c 无论用的是什么平台 xff0c 可以处

随机推荐

  • ubuntu18.04安装llvm-9 clang-9

    低版本的ubuntu只能采用编译安装的方式 xff0c 高版本的ubuntu可以采用如下方式安装 span class token keyword echo span deb http apt llvm org xenial llvm to
  • linux 下conda环境的配置

    1 安装 anaconda 3 0 下载安装包 xff1a span class token function wget span https repo continuum io archive Anaconda3 5 0 0 Linux
  • Linux 下如何添加一个普通用户,并给予用户root权限

    1 添加用户 xff0c 首先用adduser命令添加一个普通用户 xff0c 命令如下 adduser test1 添加一个名为tommy的用户 span class token function passwd span test1 修改
  • 不使用密码向github提交代码

    每次向github提交代码时都要输入用户名密码 xff0c 太麻烦了 xff0c 影响效率 解决方法 xff1a 1 在命令行中输入 span class token function git span config global cred
  • centos7系统安装好后远程连接执行命令很卡

    centos7系统安装好后 xff0c 远程连接也ok 但远程连接之后执行命令很卡 xff0c 这个问题可能是macaddr导致的 xff0c 我们要检查一下macaddr是否和其他的服务器相同 MACADDR 61 其中 以AA BB C
  • UESTC 1170 红蓝点对

    UESTC 1170 是个变异的最近点对题目 xff0c 用分治策略和计算几何做的话好像会超因为时间上是1000ms xff0c 下面这个贪心做法是看了别人的博客知道的 处理红点到原点的距离然后根据距离排序 xff0c 蓝点一样 xff0c
  • CDH环境下HDFS权限问题

    CDH环境下Hadoop平台最高权限用户是hdfs xff0c 属于supergroup组 默认HDFS会开启权限认证 xff0c 所以操作时 xff0c 需要将root用户切换到hdfs用户 xff0c 否则会报错 问题 xff1a or
  • 手动开启/关闭HDFS的safemode(安全模式)

    在hadoop启动namenode的时候 xff0c 会启动安全模式 xff08 safemode xff09 xff0c 在该模式下 xff0c namenode会等待datanode向它发送块报告 xff08 block report
  • centos7 update gcc to 7.2

    centos7默认的gcc版本是4 8 xff0c 我们需要升级到7 2 安装gcc span class token function wget span https github com gcc mirror gcc archive r
  • centos7升级GLIBC后导致系统不能启动成功

    centos7 glibc2 13 glibc2 27 1 准备U盘系统盘 xff0c 系统要和原来的系统版本匹配 开机重启按F2进入BIOS xff0c 通过U盘启动系统 选择Rescue mode 2 接下来 xff0c 选择 Resc
  • 在Linux中如何运行C语言写的脚本

    目录 1 xff1a Linux下如何运行C语言脚本 2 xff1a 实例展示 1 xff1a Linux下如何运行C语言脚本 Linux别的系统我不知道是不是这个方法 xff0c 我是用的ubuntu的 xff0c 其他的我也没测试过 x
  • Linux——利用Shell脚本编写进度条

    初级版本 xff08 原始进度条 xff09 xff1a span class hljs shebang bin bash span span class hljs built in echo span span class hljs st
  • C语言的日期和时间函数的用法及相应示例

    1 xff0e 概念 在C C 43 43 中 xff0c 对字符串的操作有很多值得注意的问题 xff0c 同样 xff0c C C 43 43 对时间的操作也有许多值得大家注意的地方 下面主要介绍在C C 43 43 中时间和日期的使用方
  • xrdp完美实现Windows远程访问Ubuntu 16.04【包括多人桌面与原生桌面】

    多人桌面 1 安装xrdp sudo apt get install xrdp 2 安装vnc4server 我这里是安装xrdp的时候自动安装的 我看网上很多说是需要单独安装的 3 安装xfce4 sudo apt get install
  • C++ range

    C 43 43 20 引入了 range 来简化对元素序列的处理 xff08 可以省略掉许多的循环遍历 xff09 1 range 和 view range range concept 通过提供一个迭代器以及一个哨兵来表示一个元素范围 xf
  • 高效求两个list的差集

    查一个ListA 的每个值 xff08 String字符串 xff09 在另外一个ListB中是否存在 xff0c 如果不存在就记录下来 模拟数据量 xff1a 100万 方法一 xff1a 直接调用list自带的removeAll方法 p
  • Codeforces Round #368 (Div. 2) A C

    大清早发现自己的rating涨了72分还是很高兴的 xff0c 毕竟之前都是在掉分 xff0c 还差9分才能到宝蓝啊 xff0c 果然还是小菜鸡 A Brain 39 s Photos 大水题 xff0c 要不是这个codeforces是外
  • Linux DISPLAY 设置

    在Linux Unix类操作系统上 DISPLAY用来设置将图形显示到何处 直接登陆图形界面或者登陆命令行界面后使用startx启动图形 DISPLAY环境变量将自动设置为 0 0 此时可以打开终端 输出图形程序的名称 比如xclock 来
  • cmake简单使用及编译项目打包成so文件

    简介 CMake是一个跨平台的编译自动配置工具 xff0c 它使用一个名为CMakeLists txt的文件来描述构建过程 xff0c 可以产生标准的构建文件 它可以用简单的语句来描述所有平台的安装 编译过程 它能够输出各种各样的makef
  • 2021基于Debian的All in One(NAS+软路由)配置教程

    基于Debian10的NAS系统配置 系统概述需求分析功能实现 系统配置简介Debian10的镜像下载与安装系统配置准备oh my zsh安装ssh远程访问开机自动登录root花生壳远程sshFrp图形化界面卸载网路配置磁盘相关命令 软件安