要让云服务器的某个端口对外开放提供服务,需要同时满足三个条件,从上层云计算平台到下层操作系统应用层排列依次如下。
云计算平台的安全组开启相应端口。
操作系统的防火墙开启相应端口。
正确安装应用程序,并设置相应端口。
下面我们逐条进行分析。
第一,朝暮数据的云服务器除了极个别可用区(如阿尔及利亚、约旦)启用了安全组之外,几乎所有云服务器都未启用安全组,也就是在云计算平台层所有端口都是开放的,因此第一个条件完全满足。
第二,部分云服务器操作系统的防火墙默认是开启的,因此需要关闭防火墙或者在防火墙上单独开启相应的端口。推荐开启防火墙,然后单独开启端口的方式,这样安全性更高。
对于CentOS/Fedora操作系统,防火墙为firewalld,相关命令如下。
关闭并禁用firewalld:
systemctl stop firewalld.servicesystemctl disable firewalld.service
单独开启某个端口(以10222端口为例):
firewall-cmd --add-port=10222/tcp --permanentfirewall-cmd --reload
对于Ubuntu/Debian操作系统,防火墙为ufw,相关命令如下。
关闭并禁用ufw:
ufw disable
单独开启某个端口(以10222端口为例):
ufw allow 10222/tcpufw reload
第三,远程登录后使用"netstat -nlp | grep 端口号"命令,来检测是否正确安装应用程序并设置相应端口。
还是以10222端口为例,如果执行下面的命令,显示了相应的端口监听记录,说明应用程序以及端口设置都是正确的。如果没有显示,说明应用程序未正确安装。
[root@zhaomu.com ~]# netstat -nlp | grep 10222tcp 0 0 0.0.0.0:10222 0.0.0.0:* LISTEN 989/sshdtcp6 0 0 :::10222 :::* LISTEN 989/sshd
最后再次强调,需要以上三个条件同时满足,某个端口才能对外开放提供服务。可以在客户端电脑上通过"telnet IP地址 端口号"命令,检测端口是否正常提供服务。例如:
telnet 58.215.65.1 10222
另外,由于以下端口容易遭受DDoS攻击,部分云服务器默认禁用以下协议及端口,且无法解除。
协议:TCP & UDP,端口:17
协议:TCP & UDP,端口:19
协议:TCP & UDP,端口:1900
协议:UDP,端口:53413
协议:UDP,端口:11211