当前位置: 代码迷 >> 综合 >> iptables端口转发
  详细解决方案

iptables端口转发

热度:75   发布时间:2024-02-28 12:50:41.0

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