解决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 smbd restart

再次检查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,可以正常挂载了。
在这里插入图片描述

如果在使用Samba共享文件夹时出现权限访问问题,可能是由于以下原因导致的: 1. 权限配置:请确保在Samba配置文件(`/etc/samba/smb.conf`)中正确设置了共享文件夹的权限。你可以检查以下几点: - 确保路径 (`path`) 配置正确并且指向了要共享文件夹。 - 确保 `read only`(只读)选项设置为 `no`,以允许对共享文件夹的写访问。 - 确保 `guest ok` 选项设置为 `yes`,以允许匿名访问(如果你希望允许匿名访问)。 2. 文件夹权限:确保共享文件夹及其子文件夹具有正确的权限。可以使用以下命令更改文件夹权限: ``` sudo chmod -R 777 /path/to/shared/folder ``` 这将授予所有用户对该文件夹及其子文件夹的读、写和执行权限。请注意,这会使文件夹对所有用户可写,因此在多用户环境中要谨慎使用。 3. Samba用户权限:如果你希望通过Samba进行身份验证和权限控制,你需要为Samba创建用户,并在Samba配置文件中配置用户身份验证。请按照以下步骤进行操作: - 创建一个Samba用户: ``` sudo smbpasswd -a username ``` 其中 `username` 是你要创建的Samba用户的名称。你将被要求设置密码。 - 在Samba配置文件中启用用户身份验证: ``` security = user ``` 确保在Samba配置文件中设置了正确的 `security` 选项。然后,重启Samba服务以应用更改: ``` sudo service smbd restart ``` - 在客户端访问共享文件夹时,使用上述创建的Samba用户进行身份验证。 4. 防火墙设置:如果你的系统上启用了防火墙,确保在防火墙中允许Samba流量通过。默认情况下,Samba使用TCP端口139和445。你可以根据你的防火墙软件和发行版的要求进行设置。 如果以上步骤都正确配置,但仍然无法访问共享文件夹,请提供更多关于错误或警告消息的详细信息,以便进一步排查问题
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值