欢迎关注「全栈工程师修炼指南」公众号
设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习!
专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享
“ 花开堪折直须折,莫待无花空折枝。 ”
作者主页:[ https://www.weiyigeek.top ]
博客:[ https://blog.weiyigeek.top ]
作者<安全开发运维>答疑交流群,回复【学习交流群】即可加入
文章目录:
Docker 快速部署 nfs-server 服务
Docker 快速部署 samba-server 服务
0x00 Docker 快速部署 nfs-server 服务
步骤 01.载入模块 nfs 依赖模块
tee -a /etc/modules-load.d/modules.conf <<'EOF'
modprobe nfs
modprobe nfsd
EOF
温馨提示: Linux modprobe命令用于自动处理可载入模块,modprobe可载入指定的个别模块,或是载入一组相依的模块。
步骤 02.创建NFS共享目录以及运行nfs-server容器,并且验证服务
$ mkdir -vp /app/storage/nfs
$ docker run --privileged -d --name nfs \
-v /app/storage/nfs:/nfsshare \
-e NFS_EXPORT_0='/nfsshare *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)' \
-p 2049:2049 -p 2049:2049/udp \
-p 111:111 -p 111:111/udp \
-p 32765:32765 -p 32765:32765/udp \
-p 32767:32767 -p 32767:32767/udp \
erichough/nfs-server
# 在Ubuntu宿主机上安装nfs客户端工具
$ sudo apt install nfs-client
$ showmount -e 10.20.176.101
Export list for 10.20.176.101:
/nfsshare *
步骤 03.手动挂载nfs到指定磁盘目录中。
mount -v -t nfs -o ro,nfsvers=3,nolock,proto=udp,port=2049 10.20.176.101:/nfsshare /mnt/nfs
参考地址: https://github.com/ehough/docker-nfs-server
偷偷的告诉你哟?【极客全栈修炼】微信小程序已开放
可直接在微信里面直接浏览博主文章哟,后续将上线更多有趣的小工具。
0x01 Docker 快速部署 samba-server 服务
描述: Samba 是适用于 Linux 和 Unix 的标准 Windows 互操作性程序套件。自 1992 年以来,Samba 为所有使用 SMB/CIFS 协议的客户端提供了安全、稳定和快速的文件和打印服务,例如所有版本的 DOS 和 Windows、OS/2、Linux 等等。
步骤 01.部署 samba-server 服务
$ sudo mkdir -vp /app/storage/nfs
$ sudo docker run -it --name samba -p 139:139 -p 445:445 \
-e TZ=Etc/UTC \
-v /app/storage/nfs:/share \
-d dperson/samba -p \
-u "iuser;123456" \
-s "myshare;/share;yes;no;yes"
步骤 02.Windows 中挂载 samba-server
# 方式1.
\\10.20.176.101\myshare
# 方式2.
C:\Users\WeiyiGeek>net use J: \\10.20.176.101\myshare "123456" /USER:iuser /PERSISTEN:yes
# 命令成功完成。
C:\Users\WeiyiGeek>net use | findstr iuser
# OK J: \\10.20.176.101\myshare Microsoft Windows Network
可用 ENVIRONMENT VARIABLES:
* CHARMAP - As above, configure character mapping
* GENERIC - As above, configure a generic section option (See NOTE3 below)
* GLOBAL - As above, configure a global option (See NOTE3 below)
* IMPORT - As above, import a smbpassword file
* NMBD - As above, enable nmbd
* PERMISSIONS - As above, set file permissions on all shares
* RECYCLE - As above, disable recycle bin
* SHARE - As above, setup a share (See NOTE3 below)
* SMB - As above, disable SMB2 minimum version
* TZ - Set a timezone, IE EST5EDT
* USER - As above, setup a user (See NOTE3 below)
* WIDELINKS - As above, allow access wide symbolic links
* WORKGROUP - As above, set workgroup
* USERID - Set the UID for the samba server's default user (smbuser)
* GROUPID - Set the GID for the samba server's default user (smbuser)
* INCLUDE - As above, add a smb.conf include
官方地址: https://www.samba.org/
参考地址: https://hub.docker.com/r/dperson/samba
Github地址: https://github.com/dperson/samba/issues
步骤 03.Linux 中挂载 samba-server
首先,我们需要安装相关 samba 挂载依赖 cifs-utils 服务与 smbclient 命令
apt install cifs-utils smbclient -y
其次,若有密码请创建一个配置文件,存储用户名和密码
username=iuser
password=123456
然后,创建挂载的目录并挂载samba
# 使用mount命令进行挂载
mount -t cifs -o vers=3.0,credentials=/etc/.smbcredentials //10.20.176.101/myshare /media/share
# 开机自动挂载(optional)
vim /etc/fstab
//10.20.176.101/myshare /myshare cifs rw,relatime,vers=3.0,sec=ntlmssp,cache=strict,username=root,domain=SMBALIBABACLOUD,uid=0,noforceuid,gid=0,noforcegid,addr=10.41.40.92,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1 1 1
亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?
最后,查看挂载信息, 至此完毕
$ smbclient -L 10.20.176.101 -U root
$ df -Th
$ mount -l
//10.20.176.101/myshare on /myshare type cifs (rw,relatime,vers=3.0,sec=ntlmssp,cache=strict,username=root,domain=SMBALIBABACLOUD,uid=0,noforceuid,gid=0,noforcegid,addr=10.41.40.92,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
温馨提示: 若出现挂载失败可以通过查看日志 tail -f /var/log/kern.log
温馨提示: 若samba客户端连接报NT_STATUS_INVALID_NETWORK_RESPONSE
错误解决办法,在samba服务端添加支持最小协议server min protocol = LANMAN1
, 然后重启smb服务,客户端便可重新连接成功。
# 问题原因:
The defaults of ‘client min protocol’ and ‘server min protocol’ have been changed to SMB2_02.
This means clients without support for SMB2 or SMB3 are no longer able to connect to smbd (by default).
It also means client tools like smbclient and other, as well as applications making use of libsmbclient are no longer able to connect to servers without SMB2 or SMB3 support (by default).
It’s still possible to allow SMB1 dialects, e.g. NT1, LANMAN2 and LANMAN1 for client and server, as well as CORE and COREPLUS on the client.
本文至此完毕,更多技术文章,尽情等待下篇好文!
原文地址: https://blog.weiyigeek.top/2020/2-25-665.html
如果此篇文章对你有帮助,请你将它分享给更多的人!
学习书籍推荐 往期发布文章
公众号回复【0008】获取【Ubuntu22.04安装与加固脚本】
公众号回复【10001】获取【WinServer安全加固脚本】
公众号回复【10002】获取【KylinOS银河麒麟安全加固脚本】
公众号回复【0011】获取【k8S二进制安装部署教程】
公众号回复【0014】获取【Nginx学习之路汇总】
公众号回复【0015】获取【Jenkins学习之路汇总】
热文推荐
企业运维 | Nginx服务在Docker与Kubernetes容器环境中快速搭建部署实践
企业运维 | Redis内存数据库在Docker与Kubernetes环境中快速搭建部署单实例与主从集群实践
企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践
【企业运维实践】丢弃手中的docker build ,使用Kaniko直接在K8S集群或Containerd环境构建推送容器镜像
企业运维实践-如何在K8S集群环境Gitlab+Jenkins+Jmeter+Grafana技术中实现自动化分布压力测试数据展示
欢迎长按(扫描)二维码 ,获取更多渠道哟!
欢迎关注 【全栈工程师修炼指南】(^U^)ノ~YO
添加作者微信【weiyigeeker】,拉你一起学习交流吧!
关注回复【学习交流群】即可加入【安全开发运维沟通交流群】
温馨提示: 由于作者水平有限,本章错漏缺点在所难免,希望读者批评指正,若有问题或建议请在文章末尾留下您宝贵的经验知识,或联系邮箱地址 master@weiyigeek.top 或 关注公众号 [全栈工程师修炼指南] 留言。
朋友点个【赞 + 在看】吧!
点击【"阅读原文"】获取更多有趣的知识!