1. 前言
今天小伙伴在群里问服务器上服务启动了,怎么本地访问不了。
我直接打开了cmd,telnet了以下,发现端口无法访问到,大概率猜测是防火墙原因,就登上服务器使用firewalld-cmd开通端口试了下。
telnet服务的打开方法: windows在我的电脑->右键->管理->服务和应用程序-服务中可找到telnet服务启动,并右键属性设置为自启动
果然如此。端口加入防火墙开通规则就好了。
2. 启动/关闭防火墙服务:firewalld
CentOS 7 以后服务启动从service xxx变成了 systemctl 命令。
防火墙也由iptables 改为默认是 firewalld。
systemctl stop firewalld.service # 停止
systemctl start firewalld.service # 启动
systemctl restart firewalld.service # 重启
3. 开启指定端口【推荐】:firewall-cmd
注意:firewall与-cmd中间是连接在一起,没有空格符的
firewall-cmd --zone=public --add-port=12059/tcp --permanent
# 开启指定端口
firewall-cmd --reload
# 重启防火墙
firewall-cmd --list-ports
# 查看开放端口列表
4. 批量开启端口:7023-8023
批量添加跟单条添加端口命令没什么区别,将7023换成7023-8023,就是把从7023到8023中间这些端口都开放了。
更多命令可以查看 linuxido.com
。
firewall-cmd --permanent --zone=public --add-port=7023-8023/tcp
# 批量开启TCP端口
firewall-cmd --reload
# 重启防火墙
5. 关闭防火墙端口:--remove
将参数add换成remove就ok。
firewall-cmd --permanent --zone=public --remove-port=7023-8023/tcp
# 批量开启TCP端口
firewall-cmd --reload
# 重启防火墙
6. 后记
如果用惯了iptables,不想用firewall,也可以切换回来。
yum install iptables-services #安装iptables
systemctl stop firewalld.service #停止firewalld
systemctl mask firewalld.service #禁止自动和手动启动firewalld
systemctl start iptables.service #启动iptables
systemctl start ip6tables.service #启动ip6tables
systemctl enable iptables.service #设置iptables自启动
systemctl enable ip6tables.service #设置ip6tables自启动
更多命令可以查看 linuxido.com
。
网友评论