12

iptables双网卡路由转发

 4 years ago
source link: https://www.leixuesong.com/2026
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

iptables双网卡路由转发

Linux Linux运维 2016年2月16日

服务器上CentOS系统双网卡,网卡1接内网IP为192.168.4.128,外网IP为x.x.x.x,网卡2 IP为192.168.1.8,只有网卡2才能访问指定IP的端口88。主要实现外网IP为x.x.x.x的端口88转发到网卡2指定IP的端口88这样一个需求。这样的需要其实很常见的,因为有时为了安全只有内网的才能访问的服务就只能用iptables双网卡转发了。下面看看CentOS用iptables实现双网卡转发的具体思路和步骤。

1、ifconfig设置并查看网卡的IP地址。

eth网卡信息

2、让指定的IP可以访问,默认路由是网卡1的网关,route设置路由指定IP的网关或者网卡。

[root@IM ~]# route #查看当前的路由,一般情况下,默认添加指向网关的路由。

default-route

[root@IM ~]# route add x.x.x.x gw 192.168.1.1 #设置指定IP的网关为网卡2的网关,默认是网卡1的网关
[root@IM ~]# route
route路由

3、开启包转发
在 CentOS 中内核已经包含了路由功能,但系统启动时包转发功能默认是关闭的。开启 CentOS 包转发的功能可以使用sysctl命令或者在配置文件/etc/sysctl.conf修改,sysctl只是临时生效,重启后失效,修改配置文件/etc/sysctl.conf则是永久有效。
数据包转发功能可以使用如下的命令。

[root@IM ~]# sysctl net.ipv4.ip_forward #查看当前系统是否支持包转发。
[root@IM ~]# sysctl -w net.ipv4.ip_forward=1 #重启后失效
[root@IM ~]# vi /etc/sysctl.conf #重启后任然有效
net.ipv4.ip_forward = 1

4、使用iptables设置转发规则

1
2
3
4
5
6
7
8
9
[root@IM ~]# iptables -t -nat -A PREROUTING -d 192.168.4.128/32 -p tcp -m tcp --dport 88 -j DNAT --to-destination x.x.x.x:88 #外网的IP是映射到内网的IP,进来的IP88端口转发到指定IP的端口88
[root@IM ~]# iptables -t -nat -A POSTROUTING -d x.x.x.x -p tcp -m tcp --dport 88 -j SNAT --to 192.168.1.8 #返回的时候先外网的IP转发到网卡2的IP上。
[root@IM ~]# iptables -t -nat -A POSTROUTING -d 192.168.1.8 -p tcp -m tcp --dport 88 -j SNAT --to 192.168.4.128
#再把网卡2的IP转发到网卡1的IP地址,这样就可以从外网的IP返回了。
[root@IM ~]# service iptables save #把iptables规则保存到文件中
[root@IM ~]# vi /etc/rc.local #把iptbles规则写到开启启动中
#load iptbales
iptables-restore > /etc/sysconfig/iptables
[root@IM ~]# service iptables restart #重启iptables。

在实际生产过程中使用iptables路由转发的需求是非常多的。我们在做iptables转发的时候一定要多去测试,一步一步的验证。双网卡的时候一定要注意转发的差异性,主要是网卡间的转发。

来源:iptables双网卡路由转发


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK