对于一些专业云的主机,如阿里云,腾讯云等,用户在运行程序时需要在云主机控制台安全组处放行程序运行时所需要通过的端口。
例如:运行宝塔面板时的网页访问端口,程序默认安装使用的是8888端口,这时就需要用户在安全组中通过放行8888端口外网才能通过该端口正常访问宝塔后台的网页。
具体操作
1.进入阿里云控制台,进入云服务器ECS选项

2.进入“实例列表”→“更多”→“网络与安全组”→“安全组配置”→“配置规则”

3.点击“添加安全组规则”
规则方向,授权策略,协议类型 如图
端口范围:如果只有一个端口(例如端口8080),就填8080/8080
如果是一个端口区间范围(例如从端口8000到8080),就填8000/8080
授权对象填 0.0.0.0/0
其他选项如图填写

有些端口只有拥有有管理员权限才能调用
在linux下,如果使用1024以下的端口则需要root权限,所以如果当前使用的不是root权限,或当前程序未获得root权限时,可把需求的端口更改到大于1024即可。
在某些情况下Linux防火墙也会阻挡端口
CentOS 6及更低的版本:
查看防火墙状态:service iptables status
开启防火墙:service iptables start
关闭防火墙:service iptables stop
CentOS 7及更高版本:
查看firewalld状态:systemctl status firewalld
开启firewalld:systemctl start firewalld
如果启动报错:Failed to start firewalld.service: Unit is masked.
是因为被锁定了,取消firewalld的锁定:systemctl unmask firewalld,再启动即可。
开放某个端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入:firewall-cmd --reload
Cnetos 7 或其他版本安装iptables防火墙
首先,停止firewalld服务,执行:systemctl stop firewalld
禁用firewalld服务,执行:systemctl mask firewalld
执行:systemctl unmask firewalld
安装iptables服务,执行:yum -y install iptables-services
设置开机启动,执行:
systemctl enable iptables
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
service iptables save
iptables防火墙开放端口
先停掉防火墙service iptables stop 关闭firewalld:
systemctl stop firewalld
systemctl mask firewalld
开放8080端口,执行:iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
保存,执行:service iptables save
开启服务,执行:systemctl restart iptables.service
查看防火墙状态:service iptables status
特别注意:在有安全组的云主机,安全组和防火墙要同时放行端口才可以