1、我们都知道,samba是默认使用445端口进行通信
2、因为 smb 服务本身就是主要针对 Windows 的,所以 445 端口被安排的明明白白。
3、由于2017年5月,那个永恒之蓝病毒(比特币勒索病毒),导致运营商(某信、某动、某通)把 445 端口封了,因此你无法通过 445 端口连接你的 linux 服务器了,也就是说:你的samba文件共享服务已经废了。


话不多说!往下看!!!

方案原理:

既然 445 被封了,我们只能换端口了,比方说换成 6727 端口,但是呢,windows 默认连的是 445 端口啊,印度佬们不让你改 windows 默认的 445 端口呀(讲道理可以改注册表来实现,但是我要是有几台 windows 电脑话岂不是要改得死去活来,况且要是你本来是有 windows 电脑与windows 电脑文件共享的呢)。这个时候通过netsh,设置本机端口映射到你那台 samba 的 linux 服务器的 6727 端口。最后,你就可以通过\\127.0.0.1来访问你的文件共享服务了。

配置 Samba

既然要使用其它端口,意味着我们服务的端口就不能再是 445,所以我们修改 Samba 主配置文件:/etc/samba/smb.conf;通过 smb ports 将 Samba 的端口更改为:6727,然后重启服务即可!systemctl restart smb

901端口samba关闭 samba 445端口_服务器

901端口samba关闭 samba 445端口_服务器_02

至此,samba服务就配置完成了

配置window10

先以管理员身份运行 cmd 控制台:这里以 Windows 10 为例

1、关闭 windows 的 445 端口:
若是你没有用过“某极度安全卫士”的话,你的 445 端口应该是一直被 LanmanServer 占用的,这个 LanmanServer 就是帮你把你电脑的文件分享给别人。所以你要把这个服务禁用了,这个服务显示的名字叫“Server”,你可以在 Windows 送的“服务”管理页面中看到(点击任务管理中的“服务”即可开启),然后禁用它。但我更喜欢用命令行操作。运行以下命令(要是运行后会显示"成功"二字):

sc config LanmanServer start= disabled
net stop LanmanServer

901端口samba关闭 samba 445端口_服务器_03

2、启动 windows 的 ip helper 服务

这个 ip helper 服务,就是用来搞端口转发的,没有了它就没法转发了。

运行以下命令(要是运行后会显示"成功"二字):sc config iphlpsvc start= auto

3、设置 windows 端口转发

假如你的公网ip是xxx.xx.xxx.xx

运行以下命令:netsh interface portproxy add v4tov4 listenport=445 connectaddress=xxx.xx.xxx.xx connectport=6727运行后什么都不会显示的
必须要重启电脑

查看转发的端口:netsh interface portproxy show v4tov4

901端口samba关闭 samba 445端口_文件共享_04

4、输入\\127.0.0.1即可访问

901端口samba关闭 samba 445端口_901端口samba关闭_05

若用linux访问smbclient //xxx.xx.xxx.xx/myshare -p 6727 -U samba;若不知道目录,则要检索smbclient -L //xxx.xx.xxx.xx -p 6727 -U samba linux挂载samba:mount -t cifs //xxx.xx.xxx.xx/myshare /samba/samba1/ -o username=samba,password=samba,port=6727,取消挂载:umount /samba/samba1/ 若用mac smb://用户名:密码@xxx.xx.xxx.xx:6727

至此,大功告成!!

注意点:

1、服务器有没对应开启6727端口

901端口samba关闭 samba 445端口_文件共享_06