服务器「二」 —— SMB服务构建及DDNS配置
前言
这次配置DDNS只是满足我在深圳这几天而已,我不知道我去学校有没有公网可以用,如果没有那么我会停掉这个东西。
(毕竟有公网还是比较方便的)
不得不说,Linux下配置DDNS是真的简单!
哦对了,因为上一篇博文我说到了我开放了 root 的登陆权限,所以我操作都是在 root 内进行的。
如果您使用的是非 root 账户,记得使用指令需要 su
提权或者在每一个代码前加入 sudo
挂载硬盘
我原来家里一直放的那台主机(服务器)是 Windows Server 2012 R2 系统,而我在那个硬盘还是有一些重要的数据的。
所以我打算拷贝过来。但是不可能走网络。
为什么呢?
- 速度较慢(因为原来主机的千兆网卡已经给我拆走拿去当冗余网口了)
- 网络I/O
- 性能
所以我打算直接拆下硬盘直接装入新主机(服务器)内直接数据迁移,而我新服务器是 Ubuntu Server 20.04 LTS
所以说要挂载 NTFS 格式的硬盘就需要额外装插件(而且性能会下降一些)
1 | apt-get -y install ntfs-3g |
如果没有权限,前面加一个 sudo
或者直接输入 su
提权吧
之后就是挂载硬盘,Linux下挂载硬盘跟Window是不太一样,Windows可以直接分配盘符,Linux是直接配置文件夹。
之后就是创建文件夹
1 | mkdir /file_change |
之后查看硬盘叫什么
1 | lsblk |
最后输入指令挂载到我所在的位置
1 | ntfs-3g /dev/sdb3 /file_change/ -o silent,umask=0,locale-zh_CN.utf8 |
然后就可以看到磁盘已经挂载成功了(1.8T大小的)
之后就开始愉快的复制吧
1 | 在我已经配置好的阵列创建一个文件夹,专门用来存储我的东西 |
构建SMB
Samba是 SMB/ZIFS网络文件共享协议 的免费开放源重新实现,该协议允许最终用户访问文件,打印机和其他共享资源。
更新软件库
每次安装前,建议更新
1 | apt-get update |
安装SAMBA
1 | apt-get install samba samba-common -y |
之后就可以查看系统中 Samba 的活动状态
1 | systemctl status nmbd |
之后就可以看到返回的结果
(每个人的返回的结果不一定相同,所以大概看看就好)
一般来讲在 Active 里面,会有绿色的 active
1 | ● nmbd.service - Samba NMB Daemon |
创建文件
(创建对应文件夹信息,下面是展示,我已经有对应数据的文件了)
1 | mkdir /data |
(上面只是例子,因为我已经有数据了,有对应的文件夹,所以直接开就可以了)
设置共享目录的权限,毕竟要支持读写操作,所以可能就需要777权限了
1 | chmod 777 /file_data/DATA |
创建SMB库
配置SAMBA文件信息
1 | vim /etc/samba/smb.conf |
添加如下类似文件到最后一行,可以理解为创建一个SMB
1 | [share] |
代码解释
1 | [samba-share] #名字,可以自己取,不建议中文 |
开放防火墙
接着就是配置防火墙设备(如果已经开放了或者防火墙没开那不用管)
1 | ufw allow Samba |
之后就可以用
1 | ufw status |
查看防火墙开放情况
配置全局选项
Samba软件包随附的默认配置文件是为独立的Samba服务器配置的。打开文件并确保将server role
设置为standalone server
1 | vim /etc/samba/smb.conf |
找到如下所示
1 | # Most people will want "standalone sever" or "member server". |
默认情况下,Samba监听所有接口。如果您只想从内部网络限制对Samba服务器的访问,请取消注释以下两行并指定要绑定到的接口:
(因为我没有这方面的需要,所以我就没有配置)
这里我贴出来需要的配置文件信息
1 | # The specific set of interfaces / networks to bind to |
配置完毕后,可以输入
1 | testparm |
检查 Samba 配置文件是否出现错误,如果没有任何错误,您可以在指令行的反馈中看到
1 | Loaded services file OK. |
的字样。
最后,重启 Samba 服务即可
1 | systemctl restart nmbd |
创建用户
我创建的用户名为 nas
的新用户,使用如下命令创建:
(因为一些原因,不可以直接使用 Samba 的创建用户界面直接创建用户,需要先在系统中创建后,再执行创建操作)
1 | useradd -M -d /home/nas -s /usr/sbin/nologin -G sambashare nas |
代码解释:
-M
不创建用户的主目录。手动创建目录-d /home/nas
将用户的主目录设置为/home/nas-s /usr/sbin/nologin
设置该用户禁止访问shell,以免出现安全问题-G sambashare
将用户添加到sambashare
组内
创建用户名所在位置
1 | mkdir /home/nas |
以下命令会将setgid位添加到 /home/nas
目录,以便该目录中的新创建文件将继承父目录的组。这样,无论哪个用户创建新文件,该文件的组所有者均为 sambashare
。例如,如果您未将目录的权限设置为 2770
,并且 sadmin
用户创建了一个新文件,则该用户nas将无法读取/写入该文件。
1 | chmod 2770 /home/nas |
通过设置用户密码将 nas
用户账户添加到 Samba 的数据库当中
1 | smbpasswd -a nas |
系统接着就会提示您配置用户密码。
设置完毕就可以开启用户信息
1 | smbpasswd -e nas |
配置完毕后,就可以直接重启 Samba 服务器,接着就可以通过链接,链接进入你的 SMB
1 | systemctl restart nmbd |
效果图
构建DDNS
系统选用 DDNS-GO 为驱动。
域名使用 阿里云 提供支持。
- 优点
- 支持Mac、Windows、Linux系统,支持ARM、x86架构
- 支持的域名服务商
Alidns(阿里云)
Dnspod(腾讯云)
Cloudflare
华为云
Callback
百度云
- 支持接口/网卡获取IP
- 支持以服务的方式运行
- 默认间隔5分钟同步一次
- 支持多个域名同时解析,公司必备
- 支持多级域名
- 网页中配置,简单又方便,可设置
登录用户名和密码
/禁止从公网访问
- 网页中方便快速查看最近50条日志,不需要跑docker中查看
- 支持webhook通知
- 支持TTL
- 支持部分dns服务商传递自定义参数,实现地域解析等功能
插件准备
首先下载后,创建一个文件夹进入,把对应 ddns-go 文件存储在你创建的文件夹目录下。
随后在 shell 中进入该目录下。
随后,授予文件 ddns-go 文件权限
1 | chmod 755 ddns-go |
之后运行安装程序
1 | ./ddns-go -s install |
安装完毕就就会自动开启,当然不要忘记开放防火墙(如果你关闭了防火墙就另外说明吧)
1 | ufw allow 9876 |
获取阿里云信息
此操作需要阿里云的 AccessKey
获取到阿里云的 AccessKey ID 和 AccessKey Secret 后直接进入地址 192.168.2.2:9876
(如果是你自己配置,就进入你自己的IP地址)
将对应的信息填入 DNS服务商 中。
接着配置ipv4和ipv6即可,如果你经常出门或者说要在外面,可以试试直接打开公网访问,这样的话,在外面也可以轻松修改配置信息。
最后配置完毕后即可,之后就可以通过域名访问服务器啦~
结尾
本篇文章只是记录信息,并没有什么难度较高的东西,如有需要可以自行尝试。
本篇博文封面来源:Pixiv: (sky)100586704