上一篇文章說了如何搭建一個本地服務器,這個服務器這能讓內網設備訪問;現在我來說說如何讓他也能讓外網訪問。
我們平常學習時經常會寫一下javaweb程序,我們為了更能逼近現實,就想着自己的javaweb程序發布后,外網的同學能夠訪問我們的網站,難道我們去買空間,去買域名嘛,其實也沒必要,我們只是學習,測試之用,在自己的電腦上搭建一個服務器完全可以滿足要求。上次寫的一篇博客,PC服務端與Android客戶端實現網絡通信,就是利用這個原理。
我們分為三步走來實現:(我這里用的示例javaweb程序是我自己簡單寫的一個小程序shop1)
1,
我們用Tomcat服務器,如果我們的javaweb程序已經部署到了Tomcat服務器,一般我們在本地訪問的地址為:localhost:8080/shop1,localhost指本機,即127.0.0.1,8080端口號,shop1你部署的項目名稱,但太過繁瑣,我們只想通過IP地址來訪問我們的項目,即127.0.0.1或者localhost,我們只需修改一下Tomcat的配置即可,打開Tomcat所在的目錄,打開conf文件夾,打開server.xml文件,所要修改的部分如下:
connectionTimeout="20000"
redirectPort="8443" />
即將port從原先的8080修改成80,因為http協議的默認端口是80,這樣你就可以不用再輸端口號了,把docBase="shop1"的值修改成你所部屬的項目的名稱,默認指向你的項目,這樣你就可以不輸項目的名稱了。還得注意一點Tomcat 7.0的版本的server.xml文件中居然沒有
12
這一條,又下載了一個5.0版本的居然有,如果你的沒有,復制加進去就可以了。
OK,這樣的話,你在瀏覽器里輸入localhost就可以訪問你的項目了!
PS:為了下來的工作中不出現什么問題,我並沒有將8080端口改成80,據說80端口被電信封掉了,我讓用電信上網的同學訪問我的網站,果然不行,這里我們明白道理就可以了,只是學習測試之用,所以我們就用8080端口。
2,上一步我們只實現了自己訪問,但如何讓外網的同學訪問,這里可能涉及了簡單的網絡知識,我網絡學的也不是很好。就說的比較通俗一點。有兩種情況(1)你上網沒有用路由,運營商單獨分給你一個IP地址,那你直接可以用你的IP讓外網的同學來訪問你的網站,我們這里用的是8080端口,所以形式為:XX.XX.XX.XX:8080。為了讓多的同學了解,我在啰嗦一下,怎么知道自己的IP地址,你不必用在cmd命令行輸入ipconfig這種略顯專業的方法去獲取,其實只要在百度搜索“IP查詢”,第一個就是。
(2)用了路由器,一個路由器帶了好幾台電腦,比如說跟室友,這就需要你去路由管理頁面去設置一下,端口映射,讓別人訪問你們的IP地址時,映射到你的電腦,在瀏覽器中輸入192.168.1.1
(
端口我們沒改,所以填8080,IP地址為你的電腦在局域網中的地址,怎么樣知道自己的局域網中的地址,很簡單自己百度一下,只要局域網里的電腦不是太多,一般為192.168.1.XXX,我這里為192.168.1.101,然后點擊保存,OK,然后外網就可以用你們IP去訪問你的網站了!
我的效果圖如下:
這時可以把這個網址發給你的同學,試一下,他能不能訪問你的網站,答案是肯定的!
3,
但是又有新問題了,你第二天打開路由,或者再次上網時,運營商會重新分配給你一個新的IP地址,難道你讓你同學訪問時,再次把這個IP地址發給他嗎?顯然這是不合理了。http://www.scshlx.com
此時,我們就想有一個動態域名多好。這里給大家介紹一款軟件“花生殼”,下載安裝,然后注冊后,你就會獲得一個免費的二級域名,每次開機自啟后,就會將花生殼服務端中的IP數據更新成你新的IP地址,然后你每次用你固定的域名來訪問時,就會解析到你新的IP地址。
如下圖:
雙擊你的域名,看有沒有顯示出“經檢測,您的域名已激活並指向正確”!
OK,到這里,沒有路由的同學,就可以直接用你的域名訪問了!
有路由的同學,還得多操作一步:
再次進入路由管理頁面,操作如下圖:
點擊“動態DNS”,這時如果你的上述操作都沒問題的話,服務提供者那一欄已經自動填充成花生殼的網址了,然后輸入用戶名,密碼,點擊登錄,如果顯示為“連接成功”,那點擊“保存”。
到這里,終於大功告成,看一下最終效果圖:
可以看到,我用我的域名成功的訪問到了我的網站。
PS:有時顯示“驗證成功”時也是個假象,一點擊“保存”時,又顯示為“驗證失敗”,再點擊“登錄”,多點擊幾次“保存”,直到它一直顯示為“驗證成功”即可,反正就是多試幾次。
祝君好運!