阿里云云服务器的端口配置问题
心血來(lái)潮花了9塊9(學(xué)生價(jià))買(mǎi)了個(gè)阿里云。因?yàn)楹蠖酥粫?huì)一點(diǎn) Node,所以上來(lái)第一件事就是按照官方教程把部署 Node 項(xiàng)目這個(gè)教程擼了一遍。
問(wèn)題描述
官方教程代碼
const http = require('http'); const hostname = 'ECS公網(wǎng)IP地址'; // 這里把文字換成自己的公網(wǎng)IP地址 const port = 3000; const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World\n'); }); server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`); });一段簡(jiǎn)單最簡(jiǎn)單的 Node http服務(wù)器,成功運(yùn)行后可以在頁(yè)面輸出 Hello World。
報(bào)錯(cuò)
報(bào)錯(cuò)了,因?yàn)橹皩?xiě)node只需要監(jiān)聽(tīng)端口,沒(méi)必要把IP地址也給寫(xiě)進(jìn)去,所以我刪了hostname,改成下面這樣。
const http = require('http'); const hostname = 'ECS公網(wǎng)IP地址'; // 這里把文字換成自己的公網(wǎng)IP地址 const port = 3000; const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World\n'); }); server.listen(port, () => {console.log(`Server running at http://${hostname}:${port}/`); });運(yùn)行成功,但是在外網(wǎng)用瀏覽器輸入IP地址之后無(wú)法訪問(wèn)。
問(wèn)題分析
curl ip.cn
查詢(xún)當(dāng)前外網(wǎng)IP,沒(méi)有問(wèn)題,與阿里云提供的一致。
ping www.baidu.com
服務(wù)器可以訪問(wèn)外網(wǎng)
curl http://127.0.0.1:3000
正確輸出 "Hello World",說(shuō)明代碼的編寫(xiě)沒(méi)有問(wèn)題。
代碼沒(méi)問(wèn)題,服務(wù)器網(wǎng)絡(luò)沒(méi)問(wèn)題,ip地址沒(méi)問(wèn)題。我估計(jì)應(yīng)該是防火墻把端口禁掉了。
關(guān)閉防火墻
身為小菜鳥(niǎo),第一時(shí)間想到的就是把服務(wù)器的防火墻關(guān)掉。我的服務(wù)器是 CentOS7.0 ,與6.0不一樣,CentOS7.0默認(rèn)使用 firewall 作為防火墻。
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止開(kāi)機(jī)啟動(dòng)firewall
firewall-cmd --state #查看防火墻狀態(tài),已經(jīng)處于關(guān)閉狀態(tài)
開(kāi)Node服務(wù)器,瀏覽器訪問(wèn)還是失敗。
好像沒(méi)招了,問(wèn)小伙伴,他們說(shuō)可能是沒(méi)有備案的原因。但是沒(méi)備案的小伙伴說(shuō)他用得好好的,而且我就買(mǎi)了一個(gè)月的服務(wù)器,再等半個(gè)月備案我也不需要用了。正打算放棄問(wèn)客服,小伙伴說(shuō)你裝個(gè)Nginx試試,只要正確運(yùn)行Nginx而且服務(wù)器沒(méi)問(wèn)題直接訪問(wèn)IP地址就能出現(xiàn)Nginx首頁(yè)了。
安裝 Nginx
CentOS有兩種方法安裝Nginx,具體的自行谷歌吧。
安裝完成,運(yùn)行成功。
瀏覽器訪問(wèn)公網(wǎng)IP,無(wú)法訪問(wèn)。
從吃完中午飯13:00一直折騰到下午6:30左右,一動(dòng)不動(dòng)坐凳子上5個(gè)多小時(shí)了,不行了,休息吃完飯去。
解決
既然Nginx正確運(yùn)行,那只剩兩個(gè)問(wèn)題了,一個(gè)是沒(méi)有備案,不過(guò)這個(gè)問(wèn)題的可能性很小很小。還有一點(diǎn)就是雖然我CentOS上把防火墻關(guān)了,但云服務(wù)器上阿里云應(yīng)該會(huì)有一些安全措施,導(dǎo)致一部分端口被禁,或者壓根就沒(méi)有把端口打開(kāi)。
吃完飯,散完步,我就在云服務(wù)器控制臺(tái)里一個(gè)一個(gè)的找,發(fā)現(xiàn)安全組里點(diǎn)擊配置規(guī)則后有一個(gè)安全組規(guī)則,里面通過(guò)添加安全組規(guī)則可以開(kāi)放需要用到的端口。默認(rèn)只打開(kāi)了兩個(gè)端口。
總結(jié)
這是一個(gè)簡(jiǎn)單的問(wèn)題,不過(guò)需要一步步排除掉可能的原因。
如果身邊有個(gè)后端或者運(yùn)維的小伙伴在的話,應(yīng)該可以很快意識(shí)到這個(gè)問(wèn)題。獨(dú)狼是走不遠(yuǎn)的,至少是走不快的。
其實(shí)在購(gòu)買(mǎi)時(shí)就可以選取要開(kāi)放的端口,第一次嘛,沒(méi)有經(jīng)驗(yàn),都是直接默認(rèn)選項(xiàng)。怪不得小伙伴說(shuō)他服務(wù)器的配置都沒(méi)有動(dòng)過(guò),應(yīng)該是購(gòu)買(mǎi)的時(shí)候就已經(jīng)設(shè)置好的。
趁年輕,多踩坑。
博客首發(fā)地址:https://www.jianshu.com/u/13cd86311525
轉(zhuǎn)載于:https://www.cnblogs.com/chaohangz/p/6893949.html
總結(jié)
以上是生活随笔為你收集整理的阿里云云服务器的端口配置问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 想了解概率图模型?你要先理解图论的基本定
- 下一篇: LayaBox IDE 安装后执行项目报