看过网上很多用CentOS7却卸载掉firewall-cmd,去用Iptables.不是很理解。并且iptable语法对新手确实有点复杂。本文使用原生态的firewall-cmd做软路由,简单方面,效率高,几条命令搞定。
工具/原料
CentOS7.6
Vmwareworkstation
两个虚拟网络
方法/步骤
1、1.CentOS6.7VM添加两张虚拟网卡,一张直接连家里的网络(Bridge)另外一张连接HostOnly独立网络
2、2.在HostOnly网络中创建一个主机。我这里是其他实验的主机,既是DC,又是DNS。
3、启用数据转发:编辑/etc/sysctl.conf或者/etc/sysctl.d/99-sys罕铞泱殳ctl.艘早祓胂conf添加如下内容net.ipv4.ip_forward=1然后执行如下命令,如下输出结果,说明启用了转发。[root@gw~]#sysctl-pnet.ipv4.ip_forward=1
4、我们佯镧诱嚣只用firewall-cmd两个zone,一个是internal,一个是external.我的ens33接的家里的网络,ens37接的ho霜杼厮贿stonly网络,这个网卡的地址,要陪在hostonly网络中的客户机上,作为网关1.把外网接口加到externalzone中[root@gw~]#firewall-cmd--permanent--zone=external--change-interface=ens33success#查看externalzone中的配置,确保接口已经加进来了。[root@gw~]#firewall-cmd--zone=external--list-allexternal(active)target:defaulticmp-block-inversion:nointerfaces:ens33sources:services:sshports:protocols:masquerade:yes#externalzone自动开了MASQUERADEforward-ports:source-ports:icmp-blocks:richrules:2.把内网接口加到internalzone中[root@gw~]#[root@gw~]#firewall-cmd--permanent--zone=internal--change-interface=ens37success[root@gw~]#firewall-cmd--zone=internal--list-allinternal(active)target:defaulticmp-block-inversion:nointerfaces:ens37sources:services:sshmdnssamba-clientdhcpv6-clientports:protocols:masquerade:noforward-ports:source-ports:icmp-blocks:richrules:
5、重新加载配置文件,配置生效。[root@gw~]#firewall-cmd--complete-reloadsuccess
6、测试:客户机上配置CentosInternal网卡地址作为网关,既可以与外面通信。
7、命令总结:[root@gw~]#echo"n娣定撰钠et.ipv4.ip_forward=1&q锇栀劐箨uot;>>/etc/sysctl.conf[root@gw~]#sysctl-p[root@gw~]#firewall-cmd--permanent--zone=external--change-interface=ens33[root@gw~]#firewall-cmd--permanent--zone=internal--change-interface=ens37[root@gw~]#firewall-cmd--complete-reload