Ubuntu Samba修改端口绕过445封禁挂载

一、前言

在生产环境中,网络设备默认封禁 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

七、关键排错总结(高频坑点)

  1. 445端口不通但服务正常:内网安全设备封禁默认SMB端口,必须修改Samba端口,无法通过放行本机防火墙解决。

  2. 挂载命令报错:禁止重复 vers 参数,非445端口挂载必须手动指定 port= 端口参数,否则默认连接445端口导致失败。

  3. root目录无法写入:共享目录为root权限时,需通过ACL授权普通Samba用户读写,不改动原有文件属主,兼顾安全与权限。

  4. 禁止root做Samba账号:Samba默认拦截root账号登录,且高危生产环境绝对不允许使用root共享。

  5. Samba密码失效:Samba密码独立于系统密码,创建用户后必须单独设置smb密码,仅创建系统用户无法挂载。

七、备选方案(端口修改无效时)

若内网为协议特征拦截(改端口仍拦截SMB),直接改用NFS共享,Linux跨机传输最稳定,2049端口内网极少封禁。

(注:部分内容可能由 AI 生成)

相关推荐
wdfk_prog2 小时前
ROS教程:01 搭建 ROS1 Noetic Docker 开发环境
运维·缓存·docker·容器·ros
SEO_juper2 小时前
Java 并发编程实战:从线程基础到高并发架构
运维·人工智能·爬虫·chatgpt·seo
szephyr3 小时前
Docker + Compose 实战:把本地项目一键搬到云服务器,附完整配置
运维·docker·容器·部署·云服务器
wdfk_prog3 小时前
ros教程02:创建 catkin Workspace、Package 与第一个 ROS1 C++ Node
运维·缓存·docker·容器·ros
亚川楼宇自控系统数据中心厂家4 小时前
高校 / 医院 / 政务云数据中心 IBMS 系统怎么落地?
运维
陈陈CHENCHEN4 小时前
【Linux】服务器根目录磁盘扩容操作记录
linux·运维·服务器
见闻小天地6 小时前
从晶片工艺到可靠性验证:晶威特TF-3215型RTC晶振全面解析
运维·业界资讯
名字还没想好☜7 小时前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes
fengyehongWorld7 小时前
Linux squid搭建基础代理服务器
linux·运维·服务器