win10连接公网ip的samba服务器
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
image.png既然要使用其它端口,意味着我们服务的端口就不能再是 445,所以我们修改 Samba 主配置文件:
/etc/samba/smb.conf
;通过 smb ports 将 Samba 的端口更改为:6727,然后重启服务即可!systemctl restart smb
image.png
至此,samba服务就配置完成了
配置window10
先以管理员身份运行 cmd 控制台:这里以 Windows 10 为例
1、关闭 windows 的 445 端口:
若是你没有用过“某极度安全卫士”的话,你的 445 端口应该是一直被 LanmanServer 占用的,这个 LanmanServer 就是帮你把你电脑的文件分享给别人。所以你要把这个服务禁用了,这个服务显示的名字叫“Server”,你可以在 Windows 送的“服务”管理页面中看到(点击任务管理中的“服务”即可开启),然后禁用它。但我更喜欢用命令行操作。运行以下命令(要是运行后会显示"成功"二字):
sc config LanmanServer start= disabled
net stop LanmanServer
image.png
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
运行后什么都不会显示的
必须要重启电脑
image.png查看转发的端口:
netsh interface portproxy show v4tov4
4、输入\\127.0.0.1
即可访问
若用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/
若用macsmb://用户名:密码@xxx.xx.xxx.xx:6727
至此,大功告成!!
注意点:
1、服务器有没对应开启6727端口
image.png