可以用學校里自己的電腦作為伺服器搭建小型個人網站嗎?

感覺上會有問題,因為沒見過周圍人這麼做過,不知道瓶頸在哪裡。

看了學校分配的IP,是219開頭的公網IP;

自己電腦可以長時間不關機在線;

個人網站,沒有商業用途,所以也不需要考慮速度和負載,能打開就行。


顯然可以的,要說瓶頸就是你的所在網路的上傳速度和你的主機配置。比較不好的控制一點就是安全設置把自己電腦放在危險的互聯網上提供對外服務實在讓人不放心,當然不給別人用就自機偶爾當個私人網盤,做做實驗都沒問題的。有錢的話還是在 Linode、DigitalOcean 什麼的買個主機吧!

下面為具體過程:

以自己的情況為例,使用公網網路(學校提供外網連接和校園網連接):

路由:磊科某家用路由,提供「虛擬服務」功能(高級配置頁下),其他類似路由也可以,比如 TP 的(在轉發規則頁下);

域名:Godady 購買域名,可以購買任意一家的域名,Godaddy 的比較出名、好用而已;

域名解析:DNSPod,解析生效快(當然還要看 TTL),方便,而且 Godaddy 的域名解析貌似易被牆(?);

主機:這裡實驗使用個人筆記本,運行 CentOS 6.5 系統。

拿到的 IP 是 123.172 開頭的公網 IP,為了測試 80(當然也可以其他埠)埠是否開放,可以使用路由器提供的「WEB 遠程管理」功能:

此時我們使用路由器獲得外網 IP 就可以測試我們的 80 埠是否開放了:

OK,能用 80 埠玩那別的埠一般也沒問題,如果不能…… 請換埠或聯繫運營商…… 因為一些原因,目前很多地區都不會像我這麼順利……

省掉 Godaddy 的域名購買和 DNS 選擇的過程,直接跳到 DNSPod 的設置頁,我們只需要添加一個 A 記錄,主機記錄自己隨便寫,記錄值指向我們的公網地址:

稍等片刻一般就可以通過這個域名訪問了:

到現在都是在訪問路由設置頁面,下面我們來把訪問頁面變成自己電腦上的頁面。首先在虛擬服務里增加規則,我這裡將外部從80埠的訪問轉到本機8000埠上:

OK,下面你就可以開個 Django 什麼的 Web 程序了,這裡我為了簡單,用 python -m SimpleHTTPServer 代替,注意修改相關的 iptables 規則,下面是通過域名訪問的樣子:

到此基本結束,類似的,題主可以搜搜 如何在樹莓派上搭建一個網站(友情提示,效果還不錯) 什麼的,畢竟個人電腦,尤其台式什麼的略費電……

再補充一點,以我所在環境為例,晚上是斷電的…… 恩,所以24小時服務基本就拜拜了,或者UPS+樹莓派?或許能撐下來,但是,人生已經如此艱難,何必呢……

但是即使不考慮持久服務,每天換IP我自己記不住,難道還得手動去解析記錄改?額,這時 DNSPod 就派上用場了,首先我們需要一個腳本(Python2,其實Shell什麼的也可以,此外requests庫是第三方庫,非必須)檢查我們今天獲得 IP:

import requests

ex_ip = requests.get("http://ifconfig.me/ip").content[:-1]

有了外部IP我們就可以考慮在DNSPod上做修改了,先獲得域名的domain_id(吐槽下為什麼在後台不能直接查):

import json

post_data={
"login_email":"******@gmail.com",
"login_password":"******",
"domain":"mytrix.me",
"format":"json"}

domain_resp = requests.post("https://dnsapi.cn/Domain.List", data=post_data)
domain_id = json.loads(domain_resp.content)["domains"][0]["id"]

有了 domain_id 就可以查改記錄了,先獲取我們需要的 record_id(繼續吐槽下為什麼在後台不能直接查):

post_data["domain_id"]=domain_id

record_resp = requests.post("https://dnsapi.cn/Record.List", data = post_data)
record_test = filter(
lambda x:x["name"] == "test",
json.loads(record_resp.content)["records"])[0]
record_id = record_test["id"].encode("utf8")

然後我們就可以修改 record_value 了(前邊都是前戲,其實就這句話是有用的):

post_data["record_id"] = record_id
post_data["record_type"] = "A"
post_data["record_line"] = "默認"
post_data["sub_domain"] = "test"
post_data["value"] = ex_ip

record_change = requests.post(
"https://dnsapi.cn/Record.Modify",
data = post_data)

print record_change.content

輸出的 code 為1就說明腳本運行正常,更詳細的 API 指南見官方文檔:DNSPod用戶API文檔


可以的,不過需要看你具體的需求。比如你是為了演示還是真正為了做一個網站。如果是真正的網站,你需要一個域名,一年花個幾百塊就行。

一般的站點伺服器都需要24小時開機,運行專門的操作系統,server2008、server2012、linux等。


推薦閱讀:

煎餅果子在南方的市場 ?
要想開一家寵物醫院需要做哪些準備?
現在寵物美容店 真的前景很好嗎?
那些讓人印象深刻的商業計劃書(BP)是什麼樣子的?

TAG:創業 | 雲存儲 | 伺服器 | 個人網站 | 計算機網路 |