LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 918|回复: 5

iptables作端口映射 每回只能成功连一次?why?

[复制链接]
发表于 2006-7-6 11:36:06 | 显示全部楼层 |阅读模式
连接外网的机器1网络:
eth0: 192.168.0.5  #连接内网
eth1:10.200.0.9   #连接外网
内网中机器2的ip: 192.168.0.2

想映射内网192.168.0.2机器上的sshd (端口22), 到机器1 端口322上, 在rc.local文件中iptables是这么写的:

  1. iptables -t nat -A PREROUTING -d 10.200.0.9 -p tcp --dport 322 -j DNAT --to 192.168.0.2:22
  2. iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp --dport 22 -j SNAT --to 192.168.0.5:322
  3. iptables -A FORWARD -o eth0 -d 192.168.0.2 -p tcp --dport 22 -j ACCEPT
  4. iptables -A FORWARD -i eth0 -s 192.168.0.2 -p tcp --sport 22 -m state --state RELATED,ESTABLISHED -j ACCEPT
复制代码


为什么在第一次成功连接322端口的ssh后, 再连它就没反应了呢?
 楼主| 发表于 2006-7-6 11:59:21 | 显示全部楼层
也就是说不能同时连两个ssh...


  1. # iptables -L
  2. Chain INPUT (policy ACCEPT)
  3. target     prot opt source               destination         

  4. Chain FORWARD (policy ACCEPT)
  5. target     prot opt source               destination         
  6. ACCEPT     tcp  --  anywhere             192.168.0.2         tcp dpt:ssh
  7. ACCEPT     tcp  --  192.168.0.2          anywhere            tcp spt:ssh state RELATED,ESTABLISHED

  8. Chain OUTPUT (policy ACCEPT)
  9. target     prot opt source               destination         

  10. Chain RH-Firewall-1-INPUT (0 references)
  11. target     prot opt source               destination  
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-7-6 12:32:14 | 显示全部楼层
Post by Osirix
连接外网的机器1网络:
eth0: 192.168.0.5  #连接内网
eth1:10.200.0.9   #连接外网
内网中机器2的ip: 192.168.0.2

想映射内网192.168.0.2机器上的sshd (端口22), 到机器1 端口322上, 在rc.local文件中iptables是这么写的:

  1. iptables -t nat -A PREROUTING -d 10.200.0.9 -p tcp --dport 322 -j DNAT --to 192.168.0.2:22
  2. iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp --dport 22 -j SNAT --to 192.168.0.5:322
  3. iptables -A FORWARD -o eth0 -d 192.168.0.2 -p tcp --dport 22 -j ACCEPT
  4. iptables -A FORWARD -i eth0 -s 192.168.0.2 -p tcp --sport 22 -m state --state RELATED,ESTABLISHED -j ACCEPT
复制代码


为什么在第一次成功连接322端口的ssh后, 再连它就没反应了呢?


你的iptables配置有错
  1. iptables -t nat -A PREROUTING -d 10.200.0.9 -p tcp --dport 322 -j DNAT --to 192.168.0.2:22
  2. iptables -t nat -A POSTROUTING -s 192.168.0.2 -o eth1 -j SNAT --to 10.200.0.9
  3. iptables -A FORWARD -o eth0 -d 192.168.0.2 -p tcp --dport 22 -j ACCEPT
  4. iptables -A FORWARD -i eth0 -s 192.168.0.2 -p tcp --sport 22 -m state --state RELATED,ESTABLISHED -j ACCEPT
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-6 15:24:00 | 显示全部楼层
不行啊, 这样iptables -F后, 第一次连都连不上了...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-6 15:29:22 | 显示全部楼层
原来还是第二句的问题:

  1. iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp --dport 22 -j SNAT --to 192.168.0.5
复制代码


最后不要限制端口就好了
回复 支持 反对

使用道具 举报

发表于 2006-7-6 18:03:26 | 显示全部楼层
多个连接肯定要多个端口,端口限制成一个当然只有一个连接
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表