【服务器管理】Linux系统自带防火墙-Iptables端口转发设置教程

10,417
BrightData

Linux系统防火墙Iptables在之前的文章中介绍过,并通过使用Iptables一键脚本配置端口转发功能,这里再聊下不通过一键脚本怎么配置并做个记录,也就是使用系统原汁原味的iptables防火墙端口转发,功能一样,iptables转发相比较其它第三方工具如Nginx、Brook、Gost、Socat占用资源更低,非常适合用于低配置中转机器使用。

教程开始文章源自技术白-https://jishubai.com/488.html

1、Centos7系统关闭并禁用系统默认的 Firewalld 防火墙,Debian系统默认自带iptables系统,直接跳到第三步清空默认规则即可;文章源自技术白-https://jishubai.com/488.html

systemctl stop firewalld.service
systemctl disable firewalld.service

2、Centos7系统安装并启用 Iptables;文章源自技术白-https://jishubai.com/488.html

yum install iptables iptables-services -y
systemctl start iptables.service
systemctl enable iptables.service

3、清空 Iptables 默认规则并保存;文章源自技术白-https://jishubai.com/488.html

iptables -F
iptables -X
iptables -Z
service iptables save    #centos7系统保存
iptables-save > /etc/iptables    #debian系统保存

4、开启系统内核转发;文章源自技术白-https://jishubai.com/488.html

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

5、设置单端口转发规则,请修改相应内容并去除括号;文章源自技术白-https://jishubai.com/488.html

iptables -t nat -A PREROUTING -p tcp --dport [本机端口号] -j DNAT --to-destination [目标IP:端口]
iptables -t nat -A PREROUTING -p udp --dport [本机端口号] -j DNAT --to-destination [目标IP:端口]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [目标端口号] -j SNAT --to-source [本机主网卡IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [目标端口号] -j SNAT --to-source [本机主网卡IP]

6、设置端口段转发规则,请修改相应内容并去除括号;文章源自技术白-https://jishubai.com/488.html

iptables -t nat -A PREROUTING -p tcp -m tcp --dport [本机端口段开始:本机端口段结束] -j DNAT --to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp -m udp --dport [本机端口段开始:本机端口段结束] -j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -d [目标IP] -p tcp -m tcp --dport [目标端口段开始:目标端口段结束] -j SNAT --to-source [本机主网卡IP]
iptables -t nat -A POSTROUTING -d [目标IP] -p udp -m udp --dport [目标端口段开始:目标端口段结束] -j SNAT --to-source [本机主网卡IP]

7、保存并重启 Iptables;文章源自技术白-https://jishubai.com/488.html

##centos7系统
service iptables save
service iptables restart

##debian系统
iptables-save > /etc/iptables
iptables-restore < /etc/iptables

Debian系统重启后规则会丢失,需设置开机后自启规则,配置如下:文章源自技术白-https://jishubai.com/488.html

touch /etc/network/if-pre-up.d/iptables

chmod +x /etc/network/if-pre-up.d/iptables

然后编辑这个文件:nano /etc/network/if-pre-up.d/iptables ,输入以下内容:文章源自技术白-https://jishubai.com/488.html

#!/bin/sh 
/sbin/iptables-restore < /etc/iptables

8、查看目前 Iptables 规则和NAT(转发)规则;

iptables -nL --line-number     #查看Iptables 规则
iptables -t nat -vnL     #查看NAT(转发)规则

9、删除单条或全部NAT转发规则;

iptables -t nat -D POSTROUTING [规则列号]     #删除单条,初始号为1
iptables -t nat -F        #删除全部
  1. 本站TG群组skill_blog   联系博主:nbskill (微信协助) 苹果ID号:曙光商店
IPRoyal
 最后更新:2023-6-27
技术白
  • Linux系统防火墙
  • Iptables端口转发
  • Iptables配置