今天寫了一下node
的小demo,于是想放到阿里云服務(wù)器上呻纹,但是訪問時卻發(fā)生了錯誤堆生。考慮了下雷酪,覺得問題在于端口號上淑仆,我寫的node
demo是監(jiān)聽的3000
端口,然而linux
下有防火墻默認(rèn)只有80
端口開放哥力,于是嘗試了下將服務(wù)器的3000
端口打開蔗怠,期間還是遇坑不少,下面就梳理下整個過程:
關(guān)閉防火墻
網(wǎng)上的大部分資料都是用iptables
防火墻的吩跋,但是阿里云的centos 7
默認(rèn)防火墻是firewall
寞射。最為簡單的方法其實(shí)就是關(guān)閉我們的防火墻:
查看下防火墻的狀態(tài):
systemctl status firewalld
1
關(guān)閉防火墻:
systemctl stop firewalld
1
這樣就解決了,在訪問下ip地址:端口號
就可以看到所寫的應(yīng)用啦锌钮! 但是這樣的問題是很不安全桥温,其實(shí)可以將firewall
服務(wù)禁用,應(yīng)用iptables
服務(wù)(網(wǎng)上大部分啟用端口的資料都是基于iptables
服務(wù))梁丘。
安裝iptables
由于沒有防火墻會造成不安全侵浸,所以給服務(wù)器安裝一應(yīng)用更廣的防火墻iptables
旺韭,首先要禁用firewall
,通過yum
安裝iptables
:
systemctil disable firewalldyum install -y iptables-services
1
2
啟動iptables
systemctl start iptables
1
啟動后可以通過systemctl status iptables
查看狀態(tài)掏觉。
更改iptables規(guī)則
將iptables
文件備份下:
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
1
設(shè)置 INPUT 方向所有的請求都拒絕
iptables -P INPUT DROP
1
放開所需端口
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPTiptables -I INPUT -p tcp --dport 3000 -m state --state NEW -j ACCEPT
1
2
保存規(guī)則
iptables-save > /etc/sysconfig/iptables
1
設(shè)置為開機(jī)啟動并且重啟
systemctl enable iptables.servicesystemctl reboot
1
2
這樣就將所需的端口3000
啟用茂翔,進(jìn)入到目錄下運(yùn)行node app.js
,就可以來看node
demo啦履腋! 安利下一個小的腳手架: https://github.com/zp1996/lsgo-cli