背景
通過 linux 伺服器搭建 samba 檔案共享服務應該人人都會了吧,然而由于2017年5月,那個永恒之藍病毒(比特币勒索病毒),導緻營運商(某信、某動、某通)把 445 端口封了,是以你無法通過 445 端口連接配接你的 linux 伺服器了,也就是說:你的samba檔案共享服務已經廢了。
那怎麼辦?我這裡還有一套解決方案。
方案原理
既然 445 被封了,我們隻能換端口了,比方說換成 6727 端口,但是呢,windows 預設連的是 445 端口啊,印度佬們不讓你改 windows 預設的 445 端口呀(講道理可以改系統資料庫來實作,但是我要是有幾台 windows 電腦話豈不是要改得死去活來,況且要是你本來是有 windows 電腦與windows 電腦檔案共享的呢)。這個時候通過netsh,設定本機端口映射到你那台 samba 的 linux 伺服器的 6727 端口。最後,你就可以通過
\\127.0.0.1
來通路你的檔案共享服務了。
需要材料
- 一個已經配置好 samba 的、有公網IP的 linux 伺服器。(伺服器到底有沒有配置好,你在伺服器上用smbclient通過公網ip連接配接試試就知道了);
- 一台永遠不打算共享檔案給其他人的 windows 電腦(是的,你需要 win7 以上的電腦);
開始操作
改 linux 伺服器 samba 服務的端口
用 vi 指令打開 配置檔案 /etc/samba/smb.conf
我并不确定你也是這個路徑
然後設定
smb ports = 6727
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0UjN0AjNwgTM4ATMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
重新開機 smb 服務
systemctl restart smb
關閉 windows 的 445 端口
若是你沒有用過“某極度安全衛士”的話,你的 445 端口應該是一直被 LanmanServer 占用的,這個 LanmanServer 就是幫你把你電腦的檔案分享給别人。是以你要把這個服務禁用了,這個服務顯示的名字叫“Server”,你可以在 Windows 送的“服務”管理頁面中看到(點選任務管理中的“服務”即可開啟),然後禁用它。但我更喜歡用指令行操作。
用管理者身份打開cmd,運作以下指令:
sc config LanmanServer start= disabled
net stop LanmanServer
要是運作後沒有顯示"成功"二字,那是可能你沒有用管理者權限運作吧。
啟動 windows 的 ip helper 服務
這個 ip helper 服務,就是用來搞端口轉發的,沒有了它就沒法轉發了。
用管理者身份打開cmd,運作以下指令:
sc config iphlpsvc start= auto
要是運作後沒有顯示"成功"二字,那是可能你沒有用管理者權限運作吧。
設定 windows 端口轉發
你的公網 IP 是 999.999.999.999 的話,那按照我下面的指令來搞。
用管理者身份打開cmd,運作以下指令:
netsh interface portproxy add v4tov4 listenport=445 connectaddress=999.999.999.999 connectport=6727
運作後什麼都不會顯示的,你就當你運作成功了吧。
重新開機 windows 電腦
要是不重新開機的話上面所做的都不會生效的。
重新開機不用教了吧。
在 windows 上打開共享檔案夾
win 鍵 + R 鍵 打開運作,輸入127.0.0.1,類似我這樣:
\\127.0.0.1
回車,然後提示輸入賬戶密碼,按照你 Linux 伺服器 samba配置的賬戶密碼輸入,就成功了。
當然,映射網絡驅動器也是一樣,按照你原來怎麼搞就怎麼搞。
總不可能你連 windows 電腦之間檔案共享都不會吧?