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