1、运行环境
CentOS Linux release 7.5
2、CentOS7默认的防火墙不是iptables,而是firewalld,这里我们使用iptables,所以先关闭firewalld
防火墙命令:1.1、设置开机启用防火墙:systemctl enable firewalld1.2、设置开机禁用防火墙:systemctl disable firewalld1.3、启动防火墙:systemctl start firewalld1.4、关闭防火墙:systemctl stop firewalld1.5、注销防火墙:systemctl mask firewalld1.6、取消注销: systemctl unmask firewalld1.7、检查防火墙状态:systemctl status firewalld1.8、检查是否开机启动:systemctl is-enabled firewalld1.9、已经启动的服务列表:systemctl list-unit-files|grep enabled1.10、启动失败的服务:执行关闭:systemctl stop firewalld systemctl disable firewalld.service
2、安装iptables
yum install iptables-services
3、设置iptables开机启动
1、systemctl start iptables
2、systemctl enable iptables
4、其他iptables命令
systemctl status iptables #查看iptables状态
systemctl restart iptables #服务重启
systemctl stop iptables #服务禁用
5、查看开放了哪些端口
iptables -L -n
6、查看nat
iptables -t nat --list
7、开启转发功能
vi /etc/sysctl.conf,将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1sysctl -p //配置生效
8、添加iptables允许访问的端口
1、在/etc/sysconfig/iptables 配置如下规则:-A INPUT -p tcp -m multiport --dports 8000:8500 -j ACCEPT2、systemctl restart iptables 生效
9、本地转发访问8000转发到8001
1、在/etc/sysconfig/iptables 配置如下规则:-A PREROUTING -p tcp --dport 8000 -j REDIRECT --to-port 8001
2、生效 systemctl restart iptables
10、远程端口转发
假设需要配置客户机想通过192.168.1.100机器的8000端口,
访问到外网服务器ip xxx.xxx.xxx.xxx的22 ssh端口1、登入192.168.1.100机器2、在/etc/sysconfig/iptables 配置如下规则:-A PREROUTING -p tcp -m tcp --dport 8000 -j DNAT --to-destination xxx.xxx.xxx:22-A POSTROUTING -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.1.100等价下面这种方式(指定网卡):-A PREROUTING -p tcp -i eth0 --dport 8000 -j DNAT --to-destination xxx.xxx.xxx:22-A POSTROUTING -j MASQUERADE3、找一台客户机测试执行 ssh test@192.168.1.100 -p 80004、生效 systemctl restart iptables