阿里云云服務器的端口配置問題

心血來潮花了9塊9(學生價)買了個阿里雲。由於後端只會一點 Node,因此上來第一件事就是按照官方教程把部署 Node 項目這個教程擼了一遍。javascript

問題描述

官方教程代碼

const http = require('http');
const hostname = 'ECS公網IP地址';  // 這裏把文字換成本身的公網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}/`);
});

一段簡單最簡單的 Node http服務器,成功運行後能夠在頁面輸出 Hello World。html

報錯

報錯

報錯了,由於以前寫node只須要監聽端口,不必把IP地址也給寫進去,因此我刪了hostname,改爲下面這樣。java

const http = require('http');
const hostname = 'ECS公網IP地址';  // 這裏把文字換成本身的公網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}/`);
});

運行成功,可是在外網用瀏覽器輸入IP地址以後沒法訪問。node

問題分析

curl ip.cnnginx

查詢當前外網IP,沒有問題,與阿里雲提供的一致。後端

ping www.baidu.com瀏覽器

服務器能夠訪問外網安全

curl http://127.0.0.1:3000服務器

正確輸出 "Hello World",說明代碼的編寫沒有問題。網絡

代碼沒問題,服務器網絡沒問題,ip地址沒問題。我估計應該是防火牆把端口禁掉了。

關閉防火牆

身爲小菜鳥,第一時間想到的就是把服務器的防火牆關掉。個人服務器是 CentOS7.0 ,與6.0不同,CentOS7.0默認使用 firewall 做爲防火牆。

systemctl stop firewalld.service #中止firewall

systemctl disable firewalld.service #禁止開機啓動firewall

firewall-cmd --state #查看防火牆狀態,已經處於關閉狀態

開Node服務器,瀏覽器訪問仍是失敗。

好像沒招了,問小夥伴,他們說多是沒有備案的緣由。可是沒備案的小夥伴說他用得好好的,並且我就買了一個月的服務器,再等半個月備案我也不須要用了。正打算放棄問客服,小夥伴說你裝個Nginx試試,只要正確運行Nginx並且服務器沒問題直接訪問IP地址就能出現Nginx首頁了。

安裝 Nginx

CentOS有兩種方法安裝Nginx,具體的自行谷歌吧。

安裝完成,運行成功。

瀏覽器訪問公網IP,沒法訪問。

從吃完中午餐13:00一直折騰到下午6:30左右,一動不動坐凳子上5個多小時了,不行了,休息吃完飯去。

解決

既然Nginx正確運行,那隻剩兩個問題了,一個是沒有備案,不過這個問題的可能性很小很小。還有一點就是雖然我CentOS上把防火牆關了,但云服務器上阿里雲應該會有一些安全措施,致使一部分端口被禁,或者壓根就沒有把端口打開。

吃完飯,散完步,我就在雲服務器控制檯裏一個一個的找,發現安全組裏點擊配置規則後有一個安全組規則,裏面經過添加安全組規則能夠開放須要用到的端口。默認只打開了兩個端口。

安全組
安全組
安全組

總結

這是一個簡單的問題,不過須要一步步排除掉可能的緣由。

若是身邊有個後端或者運維的小夥伴在的話,應該能夠很快意識到這個問題。獨狼是走不遠的,至少是走不快的。

其實在購買時就能夠選取要開放的端口,第一次嘛,沒有經驗,都是直接默認選項。怪不得小夥伴說他服務器的配置都沒有動過,應該是購買的時候就已經設置好的。

趁年輕,多踩坑。

博客首發地址:https://www.jianshu.com/u/13cd86311525

相關文章
相關標籤/搜索