/"/>

利用iptables实现SNAT及DNAT

Posted

tags:

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



SNAT


技术分享


// 此时 filter 表上的 FORWARD 链 要打开(会经过此表中的此链)
[[email protected] ~]# iptables -t nat -F
[[email protected] ~]# iptables -t nat -L -n
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 10.1.249.158 -j SNAT --to-source 192.168.2.3
[[email protected] ~]# iptables -t nat -L -n
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.1.249.158         0.0.0.0/0           to:192.168.2.3 
内部主机访问外部主机
[[email protected] ~]# curl http://192.168.2.4/index.html
hello 

查看外部主机中web的访问日志
[[email protected] ~]# tail /var/log/httpd/access_log
192.168.2.3 - - [13/Oct/2016:21:40:58 +0800]
192.168.2.3 - - [13/Oct/2016:21:40:59 +0800]
//主机,我们的内部主机IP为10.1.249.158
//而httpd的访问日志为192.168.2.3的访问
//说明成功实现了源地址转换



DNAT


技术分享


[[email protected] ~]# iptables -t filter -F 
[[email protected] ~]# iptables -t nat -F
[[email protected] ~]# iptables -t nat -A PREROUTING -d 10.1.249.125 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.4
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            10.1.249.125        tcp dpt:80 to:192.168.2.4

[[email protected] ~]# netstat -tln | grep "\<80\>"  此时本机上并没有开放80端口

[[email protected] ~]# curl http://10.1.249.125
hello  --> 此时我们访问为 nat 主机上的80端口  由上面可知,此服务器上并没有开放80,而是将请求送往 后端服务器



本文出自 “似水流年” 博客,请务必保留此出处http://sixijie123.blog.51cto.com/11880770/1879262

以上是关于利用iptables实现SNAT及DNAT的主要内容,如果未能解决你的问题,请参考以下文章

DNS原理及主从架构实现搭建智能DNSiptable仅开放主机指定端口NAT原理iptables实现SNAT和DNAT并持久保存规则

网络SNAT与DNAT防火墙之iptables

项目实战1——基于iptables的SNAT+DNAT与Docker容器发布的项目

Linux防火墙iptables之SNAT与DNAT

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

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