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
至此,samba服務就配置完成了
配置window10
先以管理員身份運行 cmd 控制台:這里以 Windows 10 為例
1、關閉 windows 的 445 端口:
若是你沒有用過“某極度安全衛士”的話,你的 445 端口應該是一直被 LanmanServer 占用的,這個 LanmanServer 就是幫你把你電腦的文件分享給別人。所以你要把這個服務禁用了,這個服務顯示的名字叫“Server”,你可以在 Windows 送的“服務”管理頁面中看到(點擊任務管理中的“服務”即可開啟),然后禁用它。但我更喜歡用命令行操作。運行以下命令(要是運行后會顯示"成功"二字):
sc config LanmanServer start= disabled
net stop LanmanServer
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
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端口