通过iptables的SNAT实现网络转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过iptables的SNAT实现网络转发相关的知识,希望对你有一定的参考价值。

参考技术A 通过SNAT来共享大网IP:

linux临时开启内核的IP_FORWARD功能:

也可以修改配置文件/etc/sysctl.conf(CentOS7中配置/usr/lib/sysctl.d/00-system.com文件),在配置文件中将net.ipv4.ip_forward设置为1,重启网络服务后永久生效。

相同子网的小网机器将路由指向这台iptables的小网IP即可实现网络互通
ip route add 10.0.0.0/8 via 172.17.11.254

Linux|计算机网络|iptables|dnat+snat实现外网访问局域网内部服务器

本实验从snat功能配置好开始

如果不会配置snat,请先从此处开始

点击这里

实验环境:

这里我使用两台centos7虚拟机,一台自己的win10本机,所有虚拟机网卡均使用桥接模式。

centos01号机器作为局域网内部机器,之后文中称之为1号主机
centos02号机器实现路由转发以及dnat功能,之后文中称之为2号路由器

网络拓扑图:

这里我们最后效果是使用win10本机去访问局域网内部的01号主机上的mysql和nginx服务,如果能够成功,则代表我们dnat配置成功

在01号主机上配置服务器

首先启动docker

service docker start

查看镜像文件

docker images

如果没有mysql和nginx镜像的话可以使用pull拉取

docker pull nginx

然后启动服务

docker run --name yihe-nginx-1 -d -p 80:80 nginx

iptables配置dnat

iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.105 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.2:80

访问验证

以上是关于通过iptables的SNAT实现网络转发的主要内容,如果未能解决你的问题,请参考以下文章

Linux|计算机网络|iptables|dnat+snat实现外网访问局域网内部服务器

启用linux防火墙转发规则时出错 Applying iptables firewall rules: iptables-restore:led ipta

NAT原理总结iptables实现SNAT和DNAT。

iptables实现网络防火墙功能,SNAT以及DNAT功能

iptables之SNAT与DNAT

iptables实现网络防火墙——SNAT与DNAT