站点图标 Linux-技术共享

基于 iptables 转发教程(TCP+UDP)

 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
       防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
       虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
       iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。

1.检查及关闭Firewalld

SSH登录上VPS后先检查Firewalld防火墙的运行状态

  1. systemctl status firewalld.service

无运行服务的状态:Active: inactive (dead)
正在运行的服务状态: Active: active (running)

如果是在运行中,需要停止并永久关闭Firewalld防火墙

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service

2.安装及设置iptables-service

2.1 检查iptables状态

  1. service iptables status

无运行iptables服务的状态:Active: inactive (dead)
正在运行iptables服务状态: Active: active (running)
未安装iptables服务的提示:Unit iptables.service could not be found.

2.2 安装 iptables service

  1. yum -y install iptables-services

2.3 设置iptables.service开机启动

  1. systemctl enable iptables.service

2.4 开启转发功能

  1. echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
  2. sysctl -p

2.5 重启iptables使配置生效

  1. systemctl restart iptables.service

2.6 检查iptables是否已经正常运行

如果服务已经正常运行,可以继续往下操作。

3.安装转发脚本

3.1 下载 iptables 转发脚本

  1. wget -qO natcfg.sh https://raw.githubusercontent.com/arloor/iptablesUtils/master/natcfg.sh && bash natcfg.sh

输出如下:

用途: 便捷的设置 iptables 端口转发
注意1: 到域名的转发规则在添加后需要等待2分钟才会生效,且在机器重启后仍然有效
注意2: 到IP的转发规则在重启后会失效,这是iptables的特性

你要做什么呢(请输入数字)?Ctrl+C 退出本脚本
1) 增加到域名的转发 3) 增加到IP的转发 5) 列出所有到域名的转发
2) 删除到域名的转发 4) 删除到IP的转发 6) 查看iptables转发规则
#?
此时按照需要,输入1-6中的任意数字,然后按照提示即可

退出移动版