Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236864
  • 博文数量: 36
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-22 20:55
文章分类

全部博文(36)

文章存档

2008年(4)

2007年(32)

我的朋友

分类: LINUX

2007-07-11 12:44:27

一个简单的应用:我的机器IP是192.168.1.240,期望访问另一个局域网的web服务器其IP为192.168.0.109,中间有台双网卡的服务器用来做透明代理,该服务器eth0为192.168.1.2,eth1为192.168.0.2。

首先需要将到达192.168.1.2:80的包顺利转给192.168.0.109,因此有了下面的DNAT:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -d 192.168.1.2 -p tcp --dport 80 -j DNAT --to 192.168.0.109:80

乍一看这应该没什么问题了,可是接下来问题是发现我的包是到0.109了,可是我的机器与0.109仍然无法正常通信,原来是到达0.109的源地址仍然是1.240,0.109回包的时候当然无法直接给1.240了,接下来就是SNAT的事了:
iptables -t nat -A POSTROUTING -d 192.168.0.109 --dport 80 -o eth1 -j SNAT --to 192.168.0.2

当然别忘了echo 1 > /proc/sys/net/ipv4/ip_forward,最好连/etc/sysctl.conf里的net.ipv4.ip_forward=1一并加上。。。
阅读(3036) | 评论(0) | 转发(0) |
0

上一篇:关于inotify

下一篇:汇编学习之系统调用

给主人留下些什么吧!~~