samba文件共享服务因445端口被禁不能访问修改映射端口

依靠samba服务挂载的远程文件夹忽然不能访问了,怀疑是端口被禁,
查看samba服务使用的端口:

 sudo netstat -tlnp |grep smb
 

显示当前使用的是默认的139和445(win10通过ip访问时似乎都是默认走445)

Samba服务所使用的端口和协议:
1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
2)Port 138 (UDP) - NetBIOS 数据报服务
3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)
5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba

在windows客户端ping一下看是否是端口问题:

telnet SERVER_IP 139 
telnet SERVER_IP 445
 

ping不通,说明是端口被网管禁用,需要自定义一个新的端口号

sudo vim /etc/samba/smb.conf
 

在samba配置文件的Global中添加,其他保持原样

[global]
smb ports = 1399
[homes]
comment = Home Directories
browseable = no
read only = no
create mask = 0755
directory mask = 0755
valid users = %S

*这里设置了home文件夹共享,需要将服务器用户通过以下命令添加入samba用户,且设置samba密码,windows访问时需要用该密码登陆,browseable = no即每个用户用自己的用户登陆后只能看到自己的home目录

sudo smbpasswd -a username
 

关闭保存后重启samba

sudo service smb restart
注意查看服务是否重启成功
systemctl status smb

再次检查samba使用的端口

 sudo netstat -tlnp |grep smb
 

tcp 0 0 0.0.0.0:1399 0.0.0.0:* LISTEN 985177/smbd
tcp6 0 0 :::1399 ::: * LISTEN 985177/smbd

已显示为1399,在win端ping端口测试:

telnet SERVER_IP 1399
 

显示可连通,由于windows访问远程文件夹时使用默认455端口,无法指定自定义端口(没查到),
因此还需要在win端通过“映射该服务器的1399端口到本地455端口”的方式实现访问

netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=1399 connectaddress=SERVER_IP
 

(如需删除该映射,将该命令中的add改为delete即可)
添加后可检查映射列表是否已存在

netsh interface portproxy show all
 

在控制面板-程序功能-启用或关闭windows功能开启客户端,关闭服务器(否则可能通过127.0.0.1访问到的是本地的samba共享目录)

可能需要重启windows

然后在运行(win+r)中输入\\127.0.0.1,可以正常挂载了。

 
posted @ 2022-09-15 11:41  海_纳百川  阅读(3995)  评论(0编辑  收藏  举报
本站总访问量