1. 程式人生 > 其它 >Winows通過非445埠遠端訪問公網Samba

Winows通過非445埠遠端訪問公網Samba

本人家裡用的軟路由,虛擬安裝了CentOS,並安裝了Samba服務,在家庭區域網訪問和共享檔案很方便,但如果想在公司電腦和手機也能隨時隨地訪問資源,就需要實現公網訪問,但 Samba 的預設埠是445,公網因為 smb1 漏洞等安全原因445埠全部禁封了;但 Windows 系統預設不提供非445埠的samba訪問,所以需要用埠轉發實現訪問。

前提:

有內建 Samba 的伺服器(電腦),有公網IP,路由器做了埠轉發,並對域名做好DDNS,也可以直接IP訪問,但一旦路由器重新撥號,IP變化之後,需要重新設定;沒有公網IP的需要用到其他內網穿透如frp等,本文暫不涉及。

假設:

1、內網samba服務埠:445

2、公網IP:123.123.123.123

3、公網埠:44500

4、做好DDNS的域名:smb.domain.com

流程:

1、用管理員賬號開啟CMD,以下命令查詢445端口占用情況

netstat -ano | findstr 445

可以看出是pid為4的程序進行監聽,從工作管理員上看是名叫System,備註"NT Kernel&System"。

2、本地 Windows 電腦開啟:控制面板-所有控制面板選項-Windows工具-服務-Server,啟動型別改為“禁用”,並停止服務,如下圖:

3、重啟機器,再次用步驟1種命令檢視445端口占用情況,應該是無佔用資訊(沒有返回資訊)。

4、利用 Windows 自帶的埠轉發 netsh interface portproxy 命令,修改埠轉發(如果使用IPV6網路,也需要進行埠轉發,具體的參照 netsh interface portproxy 使用幫助)

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=smb.domain.com connectport=44500

5、用以下命令查詢埠轉發是否設定成功(IPV6 同理)

netsh interface portproxy show all

應該可以看到相關轉發資訊,說明轉發成功。

6、用步驟1中命令,檢視445端口占用情況,此時的程序ID應該不是4,說明成功了。

7、磁碟掛載(注意,IP地址為本機地址127.0.0.1)。