導讀 | 閑置着一台筆記本,想拿來作為服務器來玩,先拿來發布之前的畢業設計的博客系統,百度搜出的資料玉石難辨,而且大多數前篇一律,剛開始參考了大多數資料來設置還是沒能真正發布成功,最后發現原來網上大部分提到的那些設置都有一個前提 —— 那就是,本地(路由器)WLAN 接口被分配的 IP 是公網 IP。(參考文章第2節內容) 作為一個網站建設小白,知道這一事實也是折騰了一些時間,好在沒放棄無意間發現了這個事實。 這篇文章主要記錄我在(路由器)無公網IP的情況下,使用 花生殼 ,通過域名成功訪問局域網本地網站 的過程。 本地網站為使用tomcat服務器運行的 JSP 網站,網絡提供商為電信,上網方式為寬帶撥號上網。 |
目錄 |
本地已經搭建好的網站,通過 "localhost:端口號/項目名" \ “127.0.0.1:端口號/項目名” 可以本機訪問,通過 “內網IP:端口號/項目名” 可以局域網內訪問了,接下來要通過外網(公網)來訪問本地網站。
接下來要做的就訪問自己的路由器,設置虛擬服務器。
簡單的說,設置虛擬服務器就是,設置局域網里哪台主機的哪個端口來接收服務器要接收的數據。具體來說,就是讓路由器在收到 WLAN 端的數據包后,在轉發時選擇我們設置的內網IP和端口號來轉發數據包。
不同路由器的具體操作不盡相同,我這里的路由器是水星(Mercury)MW300R , 大體步驟為:
1、連接路由發出的網絡后,訪問192.168.1.1 或 192.168.0.1 或路由器上貼着的提示域名網址,輸入密碼登錄管理路由器。
2、找到相關設置(高級設置->高級用戶)里的 “虛擬服務器” 設置頁面,來添加轉發規則。
3、添加一條轉發規則,如下圖所示,“外部端口” 是訪問外部IP時使用的端口號, “內部端口”是在本地訪問網站時使用的端口號, IP地址是本機的內網IP,協議類型 TCP。
按理來說,按照上圖這樣設置好轉發規則之后,通過百度搜索“IP”得到的IP(我得到的是 61.144.105.245)和 外部端口號,使用“ 61.144.105.245:8899/BesBlog ”就可以訪問我本地的網站了,可是給我的提示一直是“
無法訪問此網站
61.144.105.245 拒絕了我們的連接請求。
”
此過程主要參考的文章有 :這里
接下來,參考的網站有: 設置了虛擬服務器,外網還是無法訪問內網服務器怎么辦? 如何解決設置虛擬服務器不生效
設置了虛擬服務器不能訪問的原因有很多,建議上面2個鏈接詳細的看下,在第2個鏈接 的 4.2 小點,終於發現了我設置無效的原因:
“
WAN口IP地址不是公網IP地址,無法進行虛擬服務器映射。
解決辦法:局域網內的電腦訪問ip138.com,如查看到的IP地址與路由器WAN口IP地址不同,建議聯系寬帶服務商解決問題。
IP138.com網頁上的顯示如下圖所示:
路由器WAN口IP地址(在路由器管理界面 系統狀態 頁面查看):
”
原來網絡運營商在給我提供上網功能的時候,不一定會給到我們一個全球唯一的公網IP,我們自己路由“WLAN端” 得到的IP可能還是另一個局域網內的IP; 還可能有這么一種情況:拉的聯通的帶寬,分配的IP只能在聯通內部訪問,移動網絡不能訪問。這個IP最多只能算是“聯通內的公網IP”,不是真的公網IP。
那么,如何判斷自己路由器 “ WLAN端 ”IP是否為真實公網IP呢? 參考 如何判斷自己外網IP是否為真實公網IP,以及解決方案
根據參考中查詢IP的網站,登錄萬網http://www.net.cn/static/customercare/yourip.asp 查看獲得的IP地址,(萬網獲取IP是二個,則是IP經運營商轉換的內網環境)
我的到的結果是:
“
您的本地上網IP是:
61.144.105.245, 10.147.39.128
”
怪不得我再設置了虛擬服務器的ip和端口轉發規則之后,通過百度搜索“ip”直接查詢到自己的外網IP “61.144.105.245” 和 設置的端口還訪問不了本地的網站,原來在訪問更外層的路由器時可能就被做其他處理了。
確定了自己的原因是 “無公網IP” 之后,參考的方案 可以在下面鏈接中查找:
自己的服務器做網站服務之解決動態IP無公網IP端口80被封HTTP被屏蔽的方法 如何判斷自己外網IP是否為真實公網IP,以及解決方案
對於我這種情況,或許可以向提供商要IP(感覺比較困難),我想應該是避免不了使用第三方端口映射軟件,將域名綁定服務器,將內網網站應用映射到外網域名。
nat123 還沒用過, 花生殼我注冊過,還買了幾個5塊錢的永久域名(新用戶才有好像)。
使用花生殼就不需要上面的配置了,直接按下面來:
注冊后送了一個域名,但是簡直沒法看,另外買了幾個不那么丑的域名。登陸后在 這個頁面 可以查看:
應該是得開通 “內網穿透”的,我選擇了最便宜的開通(6塊錢 申請開通權限+ 10塊錢 1年每月1G流量),好像每個域名只可以映射一個端口,總共可以映射2個域名,我只是玩玩應該夠了。
開通后,在 這個 頁面 點擊“添加映射”
具體添加過程參考 這里
對端口的映射的配置是在 花生殼 網站上配置的,配置完之后要真正有效,還得一直開着 “花生殼” 客戶端。
我配置的域名 是 bensonlaur.vicp.io ,外部端口號80; 內網訪問地址為主機局域網地址 192.168.1.111 , 服務端口按自己的來設置。
訪問項目我正在跑的項目 BesBlog: http://bensonlaur.vicp.io/BesBlog/ (本地電腦,沒運行時該鏈接無效) http://beslyric.320.io/BesBlog (阿里雲,預計2020年8月以前有效)