昨天登录阿里云平台被告知我的服务器被别人在美国等地使用git登录过,我怀疑是我的密码泄露了,所以修改密码后重启服务器,随后写的小程序发现不能用了(小程序要求https方式访问),排查了老半天,发现443端口不通,随后自己折腾了一下午,解决了,自己记录一下。
打开端口的步骤:
-
查看防火墙状态
firewall-cmd --state
2.打开防火墙
重启服务则会断开tcp会话。
systemctl restart firewalld
firewall-cmd --reload
建议使用后一种“重载配置文件”。重载配置文件之后不会断掉正在连接的tcp会话,而
3.查看已经打开的端口
firewall-cmd --list-ports
4.打开443或80端口
firewall-cmd --add-port=443/tcp 开放通过tcp访问443
firewall-cmd --add-port=80/tcp 开放通过tcp访问80
5.80端口转发到8080(tomcat的默认端口为8080),443转发到8443(https配置的端口为8443)
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443
ps:这里其实没必要转发,但是我修改tomcat中的文件将8080修改为80,8443修改为443,直接访问80或者443端口时就是不通。所以我只能通过转发。如果有知道的朋友留言告知一下,感激不尽!
6.开放阿里云平台上的配置安全组规则开放相应的端口
到这里应该就可以了。
下面是记录一下常用的防火墙命令
打开某端口
firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)
查看防火墙状态
firewall-cmd --state
开启防火墙
systemctl start firewalld.service
关闭防火墙
systemctl stop firewalld.service
禁止开机启动启动防火墙
systemctl disable firewalld.service
检查是否允许伪装IP
firewall-cmd --query-masquerade
允许防火墙伪装IP
firewall-cmd --add-masquerade
禁止防火墙伪装IP
firewall-cmd --remove-masquerade
开放mysql端口
firewall-cmd --add-service=mysql
阻止http端口
firewall-cmd --remove-service=http
查看开放的服务
firewall-cmd --list-services
开放通过tcp访问3306
firewall-cmd --add-port=3306/tcp
阻止通过tcp访问3306
firewall-cmd --remove-port=80tcp
开放通过udp访问233
firewall-cmd --add-port=233/udp
查看开放的端口
firewall-cmd --list-ports
将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
将80端口的流量转发至
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1
将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
监听端口
netstat -an |grep 443