用自己電腦搭建外網可訪問的伺服器

2021-10-14 16:48:17 字數 3188 閱讀 1214

伺服器和普通電腦有什麼不同呢?在我看來最大的區別就是伺服器有固定的ip,自己電腦的ip是變化。

就我們寢室來講,首先你在windows上面獲取的192.168.xx.xx這個是本地ip,是路由器分配的,連到同乙個路由器上的電腦可以通過這個來訪問(同乙個區域網內)其他電腦,前提是訪問的電腦提供了服務,同理,在同乙個區域網內,把一台電腦作為伺服器,其他電腦根據ip來訪問是沒問題的(有時候電腦開啟了防火牆也會訪問不到,關了就好了)。

那麼外網怎麼訪問呢?首先pc的外網ip是變化,但是一般不重啟路由器什麼的,不會經常變化。通過這個**我們可以看到電腦當前的外網ip。而且,你會發現同乙個路由器下面的電腦外網ip都是一樣的。

那通過這個外網ip能不能訪問到自己電腦呢,其實沒有這樣簡單。首先,這個外網ip可以算作是路由器的ip,所以意思就是只能訪問到路由器,想要訪問到路由器下的電腦上,那麼要進行埠對映。埠對映很簡單,路由器基本自帶的功能,路由器設定一下,比如你的電腦本地ip是192.168.31.198(可以在路由器設定固定位址),你的程式埠是8080,那麼新增一條埠對映規則,外部、內部埠設定8080,內部ip設定192.168.31.198,就可以了。或者開啟dmz,開啟dmz功能可以將內網某乙個裝置的ip對映到外網,方便從外網訪問到該裝置,就是相當於把這個裝置當做路由器一樣,外網可以直接訪問。

其實有很多軟體可以做到這件事包括我聽的有點多的花生殼,但是收費,不收費就限制你的流量什麼的,算了我還是不用了。但是它的解決方案比較有意思,它是賣乙個網域名稱給你,通過動態解析網域名稱來實現。具體就是,網域名稱需要解析到乙個公網ip才能使用,使用方法和ip位址沒什麼兩樣就是好記。當ip改變的時候我重新解析網域名稱到新的ip位址,那不管外網ip怎麼變我的網域名稱永遠是指向我的電腦的外網ip的,可以通過網域名稱來訪問我們的電腦

private static iacsclient client = null;

string regionid = "cn-hangzhou"; //必填固定值,必須為「cn-hanghou」

string accesskeyid = "******x"; // your accesskey

string accesskeysecret = "******x";// your accesssecret

public void updatedns() else

}} catch (serverexception e) catch (clientexception e)

其中還有個解析生效時間的問題,阿里上一般是10分鐘,也就是說你的電腦作為伺服器可能會崩潰10分鐘,那不好。可以公升級一下解析,好像是買一次就好了,我將近600天,50塊,每次解析1秒生效。這樣紙搞,理論上講,你就具備把一台電腦作為伺服器的技術了,我感覺還是很有用的。

通過下面的**可以獲取外網ip,應該就是通過訪問另乙個伺服器上的介面來獲取自己的ip位址,然後再返給我們,有個問題是""這個介面是別人的,隨時可能會被關掉,所以需要在網上找找其他方法,原理應該都是一樣的,只是返回資料不同,解析方式不同而已

//獲取外網ip

public static string getv4ip()

} catch (malformedurlexception e) catch (ioexception e) finally catch (ioexception e) }}

pattern p = pattern.compile("\\(.*?)\\<\\/dd>");

matcher m = p.matcher(inputline.tostring());

if (m.find())

return ip;

}

如果你在路由器中檢視到的wan口ip位址,和外網的ip位址不一樣。這種情況是寬頻運營商,給你分配的乙個內網ip位址;即你路由器wan口ip位址是乙個內網ip位址,很多個寬頻使用者,共同使用乙個外網ip位址上網。

這情況實際上和我們自己使用路由器上網一樣的,我們電腦、手機上獲取的是路由器分配的乙個內網ip位址,最總多台電腦、手機共同使用路由器中的wan口ip位址上網。

一般來說,wan口ip和外網ip位址不一樣,並不會影響到我們的正常上網;不過在一些特殊網路環境下,會影響到使用者的正常使用。例如在路由器中設定埠對映的時候,由於路由器的wan口和外網ip位址不一樣,會導致埠對映失敗。

看到沒有,有這種情況,就是你的路由器本來就不是用的外網ip,相當於在你的路由器上面還有乙個路由器,而且我們沒法在那裡設定埠對映。有人說可以打**叫服務商給你換乙個外網ip,我感覺我學校是沒什麼可能,我也沒試過,我感覺家裡或者公司應該可以。

就是說如果你去剛才那個**看了你的公網ip如果和你的路由器主介面設定賬號那裡顯示的ip一樣的,那好恭喜你,上面那樣搞沒問題,很簡單,也非常好,你想想,阿里乙個1g,1核,頻寬1m的伺服器都是59乙個月,你自己電腦頻寬100m,效能也好,多好,還免費。所以我有興趣來搞這個東西。

那搞了一天白搞了?那不可能,可以看出來之前那個辦法已經沒有辦法實現了,真的是沒有辦法直接訪問自己的電腦了,那還有另一種說法,埠對映內網穿透。這篇文章寫的很詳細了,埠對映內網穿透方案探索。

其實呢,我看了一下,方法基本上就是通過一些服務來**請求吧,大概就是你的電腦一直連線另乙個伺服器,當另乙個伺服器有一些特定的請求的時候**給你的電腦,基本道理我覺得是這樣吧。那其實和之前那個方法真的是天壤之別了。速度肯定取決於這兩台伺服器中最慢的一台了,反正感覺沒什麼優勢。

我現在實現了最簡單的使用ssh埠**來做內網穿透。因為非常簡單,我試了一下。按照這篇文章使用ssh埠**來做內網穿透

centos7重啟ssh服務的命令為 service sshd restart
那其實可以看到,我們的電腦沒有固定的ip,服務商甚至都不給我們外網ip,其實我們去找服務商買乙個固定的ip,那這個連線的電腦就可以當做伺服器使用了。

現在的大部分技術是ipv4,所以靜態ip稀缺,導致需要付費使用靜態ip,在以後ipv6的使用,幾乎可以讓地球上每乙個人都有乙個屬於自己的靜態ip。

在杭州辦了電信寬頻,發現有外網ip,直接對映一下的確成功了;祝大家也能成功

重點就在於你的寬頻賬戶有沒有被分配公網ip,有的話,公網ip就相當於被設定在了你家接入網線的第乙個路由器或者貓上面;誰都可以訪問這個公網ip,設定一下埠對映就可以把相應埠的訪問請求**到這個路由器下的電腦上,電腦自己來做處理,自己電腦就相當於一台伺服器了。有些路由器是linux系統的,安裝一些硬碟什麼的可以直接就作為伺服器了,都不需要再對映

如何讓自己的電腦內外網同時用?

目錄 寫在前面 公司支用內網的原因通常都是為了保證資料安全,請在確保資料安全的情況下使用!如何保證內外網同時使用 很多小夥伴在工作中都需要連線自己公司的內網進行工作,想要上網查點資料網路還得來回切換,用手機吧就很不方便。這裡教大家一招,如何讓自己的內外網同時使用!ps 電腦必須有兩張以上的網絡卡 上...

外網訪問自己的tomcat

我們平常學習時經常會寫一下j aweb程式,我們為了更能逼近現實,就想著自己的j aweb程式發布後,外網的同學能夠訪問我們的 難道我們去買空間,去買網域名稱嘛,其實也沒必要,我們只是學習,測試之用,在自己的電腦上搭建乙個伺服器完全可以滿足要求。上次寫的一篇部落格,pc服務端與android客戶端實...

小型區域網路搭建 可訪問外網

1.小型區域網路搭建 可訪問外網 工作中有時會遇到連線區域網 內網 比如搭建臨時資料庫,供客戶現場的開發測試人員使用 但同時又想訪問網際網路 外網 查詢資料,比如用vpn訪問公司本部的資料.需要雙路由甚至多路由的情況,操作如下 硬體要求 電腦有雙網絡卡 最好乙個有線網絡卡,乙個無線網絡卡 普通筆記本...