from–https://blog.csdn.net/tingfenyijiu/article/details/105088860
启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。
一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则.
查看 firewall 状态 : # firewall-cmd --state # eg :running 查看 firewall 版本 : # firewall-cmd --version #eg : 0.4.3.2 重启防火墙 # systemctl restart firewalld #查看所有的zone信息 # firewall-cmd --list-all-zones #查看默认zone是哪一个 # firewall-cmd --get-default-zone #临时修改接口p3p1所属的zone为internal # firewall-cmd --zone=internal --change-zone=p3p1 #暂时开放http # firewall-cmd --add-service=http #永久开放http # firewall-cmd --permanent --add-service=http #在public中永久开放80端口 # firewall-cmd --zone=public --add-port=80/tcp --permanent #从public zone中移除服务 # firewall-cmd --permanent --zone=public --remove-service=ssh #重新加载配置 # firewall-cmd --reload 查看一下防火墙现在开启了哪些服务和端口 [root@localhost ~]# firewall-cmd --list-all public (default, active) interfaces: eno16777736 sources: services: dhcpv6-client ssh ports: 8080/tcp masquerade: no forward-ports: port=80:proto=tcp:toport=8080:toaddr= icmp-blocks: rich rules: 设置默认的zone irewall-cmd --get-default-zone firewall-cmd --set-default-zone=trusted
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
#开放80 端口 # firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 从public移除 interface # firewall-cmd --zone=public --remove-interface=eno16777736 查询外网端口 # firewall-cmd --permanent --query-port=8080/tcp 删除8080端口,禁止外网访问 # firewall-cmd --permanent --remove-port=8080/tcp 添加8080端口,供外网访问 # firewall-cmd --permanent --add-port=8080/tcp 暂时开放ftp服务 firewall-cmd --add-service=ftp 永久开放ftp服务 firewall-cmd --add-service=ftp --permanent 永久关闭ftp服务 firewall-cmd --remove-service=ftp --permanent
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
打开mysql 3306端口并 设置外部访问
mysql安装后默认是localhost访问,如果需要外部访问可以设置一个新的账号把host改为%,意味着所有ip均可以访问
grant all privileges on *.* to 'outUser'@'%' identified by '12' with grant option
- 1
然后
flush privileges;
- 1
就可以使用outUser账户密码12来外部访问,有的时候无法访问需要打开防火墙开放端口
centos 7 中使用的是firewall-cmd命令
打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
- 1
centos7 firewall 防火墙 命令
如果你的系统上没有安装使用命令安装
#yum install firewalld //安装firewalld 防火墙
- 1
开启服务
# systemctl start firewalld.service
- 1
关闭防火墙
# systemctl stop firewalld.service
- 1
开机自动启动
# systemctl enable firewalld.service
- 1
关闭开机制动启动
# systemctl disable firewalld.service
- 1
查看状态
#systemctl status firewalld
- 1
得到到的结果如果是
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2016-09-05 02:34:07 UTC; 15min ago Main PID: 3447 (firewalld) CGroup: /system.slice/firewalld.service └─3447 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid Sep 05 02:34:07 vultr.guest systemd[1]: Starting firewalld - dynamic firewall daemon... Sep 05 02:34:07 vultr.guest systemd[1]: Started firewalld - dynamic firewall daemon.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
这样的说明没有问题
设置 firwall
使用firewall-cmd 命令
查看状态
#firewall-cmd --state //running 表示运行
- 1
获取活动的区域
#firewall-cmd --get-active-zones
- 1
这条命令将用以下格式输出每个区域所含接口:
获取所有支持的服务
#firewall-cmd --get-service
- 1
每个服务以空格分隔 例如:
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-http
- 1
获取永久选项所支持的服务 就是重启后也支出的
#firewall-cmd --get-service --permanent //在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic
- 1
开启应急模式阻断所有网络连接
#firewall-cmd --panic-on //在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic
- 1
关闭应急模式
#firewall-cmd --panic-off
- 1
查看应急模式的状态
#firewall-cmd --query-panic
- 1
在不改变状态的条件下重新加载防火墙:
#firewall-cmd --reload
- 1
防火墙预定义的服务配置文件是xml文件 目录在 /usr/lib/firewalld/services/
在 /etc/firewalld/services/ 这个目录中也有配置文件 但是/etc/firewalld/services/目录 优先于 /usr/lib/firewalld/services/ 目录
修改配置文件后 使用命令重新加载
#firewall-cmd –reload
启用某个服务
# firewall-cmd --zone=public --add-service=https //临时
- 1
# firewall-cmd --permanent --zone=public --add-service=https //永久
- 1
开启某个端口
#firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久 #firewall-cmd --zone=public --add-port=8080-8081/tcp //临时
- 1
- 2
使用命令加载设置
#firewall-cmd --reload
- 1
查看开启的端口和服务
#firewall-cmd --permanent --zone=public --list-services //服务空格隔开 例如 dhcpv6-client https ss #firewall-cmd --permanent --zone=public --list-ports //端口空格隔开 例如 8080-8081/tcp 8388/tcp 80/tcp
- 1
- 2
参考地址:
CentOS7防火墙管理firewall-cmd