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)。