【求助】请问如何进行端口映射?

【求助】请问如何进行端口映射?

服务器A有双网卡,外网地址218.25.XXX.XXX,内网192.168.xxx.xxx
服务器B只在内网当中,192.168.xxx.xxx.
在服务器B上有httpd,svn,ftpd,cvs等服务.
请问通过什么方法能使外网访问到服务器B,并且正常运行这几个服务?      
用iptables命令做个NAT转换,(先把转发打开,把/etc/sysctl.conf这个文件里forward的值改成1),例如内部机器要共享上网就做SNAT(例:iptables -t nat -A POSTROUTING -s 192.168.xxx.xxx/24 -j SNAT --to-source 218.25.xxx.xxx)要让外部访问你内部的服务器就做个DNAT,(例如访问http服务:iptables -t nat -A  PREROTING -p tcp -d 218.25.xxx.xxx --dport 80 -j DNAT --to-destination 192.168.xxx.xxx:80)注意有减号的地方,有的是一个有的是两个,还有注意空格.      
iptables: No chain/target/match by that name
这是什么错误提示?      
iptables -t nat -A PREROUTING  -p tcp -d 192.168.100.104  --dport 21  -j DNAT --to-destination 192.168.100.90:21

这次不报错了,但是为什么访问出错呢?是不是还需要什么设置?      
原来默的防火墙有没有关掉,还有Selinux是不是有限制。转发链(forward)有没有打开,还有FTP请求端口是21但传输端口是20,是不是有关我也没做过测试      
好了,原来是内网网关的问题