各類學習網站都沒有詳細而簡單的提供一套完整遠程解決方案。也由於其中涉及非軟件開發知識。通過認真學習和實踐,在這里給出完整全面的解決方案,以供有需要的網友參考研究。
(原創:唐飛 QQ:87671675 ,有更好建議的可留言,或者加QQ互相學習交流。)
從外網訪問SQL數據庫服務器
分四步論證逐一完成:
一、針對電信,聯通,移動 寬帶供應商的要求:
1、公網固定IP或撥號獲得的公網動態ip(某些100開頭的ip地址為私網ip將無法實現遠程訪問,只能用特殊域名工具綁定)。
2、公網動態ip 綁定的域名。
二、路由器的要求:做虛擬地址轉發
1、外部 1433端口,內部1433端口 。綁定SQL服務器局域網內部ip 比如192.168.1.120,協議類型為:TCP。
2、無需開啟DMZ。
3、DDNS 申請路由器支持的域名供應商提供的域名。在路由器中登錄域名供應商要求的注冊賬號和密碼。注意:一個注冊賬號在域名供應商那邊可能支持多個域名名稱。見下圖2張。
![]() |
![]() |
4、補充,也可以無視第三步,因為現在TPLINK路由器廠商提供TPLINK ID,只要注冊擁有ID,也可以憑借這個ID,創建多個域名,如下圖。這樣也就避開繁瑣的花生殼域名操作
但是更換路由器可能會需要重新綁定路由器MAC與域名本身的鏈接。
三、客戶端Debug文件夾,也就是要在外地使用的電腦的程序客戶端的文件夾,其中連接數據庫配置的文件的要求:
需要修改 server=服務器名\sqlexpress 改為:公網固定IP或域名,1433\sqlexpress。注意:域名和端口之間不是冒號,是逗號。不要弄錯。這種寫法放在局域網內部也能訪問服務器。
四、服務器安裝的SQLSERVER 2008 EXPRESS的配置
1、Native Clinet 客戶端協議的TCP/IP 默認端口 為1433,不要隨便改動。但是要手動設置“已啟用”。
2、最重要的:SQLEXPRESS協議中,TCP/IP有好幾個設置,只有設置IPALL中的TCP端口為1433才能實現遠程訪問數據庫。(上面IP1-IP5設置了也沒用)。見圖
見下圖:
![]() |
![]() |
服務器防火牆設置中 高級設置-入站規則 建立1433端口 為TCP類型。
至此廣域網中的外網客戶端程序需要完成上述4個要求的配置后,即可在任何有互聯網的地方訪問SQL服務器了。(如果沒能訪問,重啟SQL服務或者服務器,路由器重啟即可)
//下面針對本地局域網中的客戶端與SQL服務器連接,在啟用windows防火牆的情況下。配置相關規則。
假設服務器安裝的是win7或者win10,那么防火牆中的設置:
高級設置-入站規則中創建 1434端口 類型為UDP。完成后,本地局域網客戶端可突破服務器防火牆通過1434端口 與SQL服務器進行數據交換。