Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1594120
  • 博文数量: 317
  • 博客积分: 10283
  • 博客等级: 上将
  • 技术积分: 3566
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-04 11:38
个人简介

哥使用Linux

文章分类

全部博文(317)

分类: LINUX

2007-10-07 09:00:55

     情形:内部的服务器能被外面的机器访问,Linux作为网关上要进行双向地址转换。
 
     假设:外部的ip为202.xx.xxx.xx/29,内部的服务器192.168.10.100/24
          Gateway_IP为网关的外部ip地址,Gateway_LAN为网关的内部ip地址
 
#在外网卡上增加一个IP地址,使网关能接收到发送给202.xx.xxx.xx的数据包。
ip addr add 202.xx.xxx.xx/29 dev eth0
 
#将发送给202.xx.xxx.xx的数据包,转换成发送给192.168.10.100的,
#并负责将后续的应答包转换回来,但由192.168.10.100发起的连接不会进行处理。
iptables -t nat -A PREROUTING -d 202.xx.xxx.xx --to 192.168.10.100 -j DNAT
 
#将由192.168.10.100发起连接的数据包,转换成由202.xx.xxx.xx发出,
#并负责将后续的应答包转换回来,否则从192.168.10.100发起的连接不会被转换
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.100 \
--to 202.xx.xxx.xx -j SNAT
 
#从内部发送给192.168.10.100的要进行转换为从网关发出的,
#否则内部的机器无法连接202.xx.xxx.xx,因为返回的数据包不经过网关就发送回去了
iptables -t nat -A POSTROUTING -d 192.168.10.100 -s 192.168.10.100/24 \
--to $Gateway_LAN -j SNAT

#伪装,共享上网,
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.10.100/24 \
--to $Gateway_IP
阅读(1363) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~