LinuxSir.cn,穿越时空的Linuxsir!

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

pcanywhere端口映射后无法连出

[复制链接]
发表于 2005-4-8 14:09:11 | 显示全部楼层 |阅读模式
通过eth0,固定IP上网,copy eth0为eth0:1后,eth0为上网的固定IP,eth0:1为192.168.0.1,客户端通过192.168.0.1的网关上网,现在想设置pcanywhere的外网连入,做端口映射:iptalbes -t nat -A PREROUTING -p tcp --dport 5631 -j DNAT --to 192.168.0.11
iptalbes -t nat -A PREROUTING -p udp --dport 5632 -j DNAT --to 192.168.0.11后,外网的确可以连接进来,但是,内网连接外网时,却也转发到直接连接192.168.0.11这台机器去了,该如何处理了?我只有一个网卡。在线等各位帮忙~谢谢
发表于 2005-4-8 21:52:19 | 显示全部楼层
iptables -t nat -A PREROUTING -p tcp --dport 5631 -j DNAT --to 192.168.0.11:5631
iptables -A FORWARD -p tcp -d 192.168.0.11 --dport 5631 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -p tcp -d 192.168.0.11 \
--dport 5631 -j SNAT --to 192.168.0.1
#内网机的IP转换成网关IP
ptables -A FORWARD -d 192.168.0.1 -p tcp --dport 5631 -m state --state NEW -j ACCEPT


不懂你后面的规则要还要加上去干什么?而且ipables不一定要指定ether是必须的。

好好看看iptables 的man吧。
回复 支持 反对

使用道具 举报

发表于 2005-4-8 22:44:26 | 显示全部楼层
iptalbes -t nat -A PREROUTING -p tcp --dport 5631 -j DNAT --to 192.168.0.11
这句逻辑有问题
PREROUTING是先修改包结构,后路由
由于你没有规定数据包来源,因此所有通过路由的数据包都被改了目的地址,都指向了192.168.0.11

解决方法有3

1、添加网卡设备,设置外网网口,比如你的WAN是eth0,LAN是eth1
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5631 -j DNAT --to 192.168.0.11

2、如果你只有一块网卡,是单臂路由,那么可以用“非来源于内网地址”的方法
iptables -t nat -A PREROUTING -s ! 192.168.0.0/24 -p tcp --dport 5631 -j DNAT --to 192.168.0.11

3、如果你不是ADSL接入,有固定IP,可以设置目的地址
iptables -t nat -A PREROUTING -d 公网IP -p tcp --dport 5631 -j DNAT --to 192.168.0.11
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-9 10:25:07 | 显示全部楼层

已解决:

非常感谢,已经解决,解决方法按楼上的兄台所释:
iptalbes -t nat -A PREROUTING -d 61.XXX.XXX.XXX -p tcp --dport 5631 -j DNAT --to 192.168.0.11
iptalbes -t nat -A PREROUTING -d 61.XXX.XXX.XXX -p udp --dport 5632 -j DNAT --to 192.168.0.11
回复 支持 反对

使用道具 举报

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

本版积分规则

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