一、前言
在生产环境中,网络设备默认封禁 TCP 445 端口(SMB协议),导致默认Samba共享无法挂载。常规445端口挂载会出现网络连通但端口不通的诡异问题。
环境说明:
-
服务端(共享端):Ubuntu 20.04,IP:10.2.2.114
-
客户端(挂载端):Ubuntu 20.04
-
核心问题:工业/供电内网封禁默认445端口,Samba常规挂载超时、无法连接
-
服务端(共享端):Ubuntu 20.04,IP:10.2.2.114
-
客户端(挂载端):Ubuntu 20.04
-
问题1:内网封禁445端口,默认Samba挂载超时
六、关键排错总结(高频坑点)
二、原始问题:默认445端口Samba挂载失败
1. 故障现象
客户端可以正常 ping 通服务端,但是无法连接445端口:
-
ping 10.2.2.114 正常丢包0%
-
nc -zv 10.2.2.114 445 无响应、超时
-
挂载报错:
mount error(115): could not connect to 10.2.2.114 Unable to find suitable address.
2. 排查确认
服务端Samba服务正常运行、端口监听正常:
bash
systemctl status smbd
ss -tulpn | grep smbd
nc -zv 127.0.0.1 445
结论:服务端服务、端口、防火墙均无问题,上层交换机/安全设备封禁445端口,必须修改Samba端口绕过限制。
三、Samba服务端修改端口(445→1445)完整配置
1. 修改Samba主配置文件
bash
nano /etc/samba/smb.conf
在 global 全局段添加自定义监听端口,替换默认445:
Plain
[global]
smb ports = 1445 139
说明:放弃默认445,改用1445端口提供SMB服务,139端口保留兼容。
2. 校验配置并重启服务
bash
# 校验配置语法
testparm
# 重启samba服务
systemctl restart smbd
3. 放行新端口防火墙
bash
ufw allow 1445/tcp
ufw reload
4. 验证端口监听
bash
ss -tulpn | grep smbd
正常输出:服务监听 0.0.0.0:1445,代表端口修改生效。
5. 配置Samba共享目录
本次共享目录:/data02/data-xianchang,配置片段:
Plain
[vlcshare]
path = /data02/data-xianchang
browseable = yes
writable = yes
valid users = smbuser
create mask = 0644
directory mask = 0755
四、Samba专用账号创建(安全隔离,不使用root)
禁止root账号用于Samba共享(系统默认拦截、高危),新建专用共享账号。
1. 创建系统用户(禁止SSH登录,仅用于共享)
bash
useradd -M -s /usr/sbin/nologin smbuser
-
-M:不创建家目录
-
-s /usr/sbin/nologin:禁止SSH登陆,仅Samba使用
2. 设置Samba独立密码
Samba密码与系统密码独立,必须单独设置:
bash
smbpasswd -a smbuser
3. 目录权限适配(root目录授权普通用户读写)
bash
# 安装acl权限工具
apt install acl -y
# 递归授权读写 + 子目录继承权限
setfacl -R -m u:smbuser:rwx /data02/data-xianchang
setfacl -dR -m u:smbuser:rwx /data02/data-xianchang
五、客户端挂载命令(指定1445端口,最终可用版)
规避旧命令错误:删除重复 vers 参数、新增 port=1445、编码权限优化
1. 客户端前置依赖
bash
apt install cifs-utils -y
mkdir -p ./share
2. 最终挂载命令
bash
sudo mount -t cifs "//10.2.2.114/vlcshare" ./share -o username=smbuser,password=smbuser@2026,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,port=1445
3. 挂载验证与卸载
bash
# 查看挂载
df -h
# 卸载共享
umount ./share
七、关键排错总结(高频坑点)
-
445端口不通但服务正常:内网安全设备封禁默认SMB端口,必须修改Samba端口,无法通过放行本机防火墙解决。
-
挂载命令报错:禁止重复 vers 参数,非445端口挂载必须手动指定 port= 端口参数,否则默认连接445端口导致失败。
-
root目录无法写入:共享目录为root权限时,需通过ACL授权普通Samba用户读写,不改动原有文件属主,兼顾安全与权限。
-
禁止root做Samba账号:Samba默认拦截root账号登录,且高危生产环境绝对不允许使用root共享。
-
Samba密码失效:Samba密码独立于系统密码,创建用户后必须单独设置smb密码,仅创建系统用户无法挂载。
七、备选方案(端口修改无效时)
若内网为协议特征拦截(改端口仍拦截SMB),直接改用NFS共享,Linux跨机传输最稳定,2049端口内网极少封禁。
(注:部分内容可能由 AI 生成)