我们项目在linux系统正常启动,在外部电脑或服务器 输入 IP地址:端口号却没法访问,考虑是linux上的防火墙做了限制。
一,防火墙开启制定端口
查看已开启端口:
firewall-cmd --zone=public --list-ports
开启制定端口 例如 将8080端口加入防火墙的public区域:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
更新防火墙规则
firewall-cmd --reload
再次查看开启端口
firewall-cmd --zone=public --list-ports
二,直接关闭防火墙
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
关闭开机自启动:systemctl disable firewalld.service
开启开机启动:systemctl enable firewalld.service
三,iptables防火墙
CentOS7 默认使用firewalld防火墙,如果想换回iptables防火墙,可关闭firewalld并安装iptables。
1、关闭firewall:
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state
2.安装iptables-services
yum install iptables-services
3.修改防火墙配置文件
vi /etc/sysconfig/iptables
默认的文件为:
在修改之前使用telnet命令查看端口是否开放。
1.启动telnet。控制面板–>程序和功能–>打开或关闭windows功能–>勾选Telnet的两个选项。
2.打开cmd窗口,输入telnet,如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的情况下,链接成功,则进入telnet页面(全黑的),证明端口可用。
(1)telnet IP 端口。
(2)telnet 域名 端口。
如果成功连接会进入的界面
连接失败
添加端口80、8080、3306、3690端口:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 开启80端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT # 开启8080端口
esc :wq! 退出保存修改。
注意:添加在端口22上面或者下面,不要放在最后,不然不起作用。
4.重启防火墙使配置生效
systemctl restart iptables.service
刚刚yum install iptables.service之后系统如果没有重启,iptables.service是找不到的,会报unit not fount。耽误时间的小坑!
设置防火墙开机启动:
systemctl enable iptables.service