天天看點

20181108 公網Linux伺服器開啟samba(smb)檔案共享服務給家裡電腦用

背景

通過 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
           

來通路你的檔案共享服務了。

需要材料

  1. 一個已經配置好 samba 的、有公網IP的 linux 伺服器。(伺服器到底有沒有配置好,你在伺服器上用smbclient通過公網ip連接配接試試就知道了);
  2. 一台永遠不打算共享檔案給其他人的 windows 電腦(是的,你需要 win7 以上的電腦);

開始操作

改 linux 伺服器 samba 服務的端口

用 vi 指令打開 配置檔案 /etc/samba/smb.conf

我并不确定你也是這個路徑

然後設定

smb ports = 6727
           
20181108 公網Linux伺服器開啟samba(smb)檔案共享服務給家裡電腦用

重新開機 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 電腦之間檔案共享都不會吧?

繼續閱讀