QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: ecapslock

〈求助:急〉nat映射的问题:iptables

[复制链接]
 楼主| 发表于 2004-12-14 08:05:25 | 显示全部楼层
xmlcf你好:
[root@mail root]# chkconfig --list|grep afs3-callback
afs3-callbackn
然后我该怎么办,还是ftp不上呢~,该怎么解决啊
回复

使用道具 举报

 楼主| 发表于 2004-12-14 09:11:03 | 显示全部楼层
xmlcf你好:

[root@mail root]# chkconfig --list|grep afs3-callback
afs3-callbackn

说明是开着的,但是还是实现不了映射,还是无法访问到,出现同样的错误,该怎么办呢?
回复

使用道具 举报

发表于 2004-12-14 11:34:14 | 显示全部楼层
我已经在我的机子上做了实验,成功了。
[root@lcf root]# chkconfig --list|grep afs3-callback
        afs3-callback:  启用
[root@lcf root]# netstat -anptu|grep 7001
tcp     0    0 0.0.0.0:7001    0.0.0.0:*    LISTEN    4238/xinetd
[root@lcf root]#
现在只有一种解释,你的/etc/xinetd.d/afs3-callback这个文件格式不对!正确格式如下:
service afs3-callback
{
        disable                =  no
        socket_type        =  stream        
        wait                =  no
        user                =  root
        redirect        =  172.16.33.1  21
}
注意:每个=左右两边都要有空格;IP地址和端口号之间也要有空格。


……原来有空格的,发到网页上就看不出来了!郁闷……
回复

使用道具 举报

发表于 2004-12-14 11:42:37 | 显示全部楼层
改了/etc/xinetd.d/afs3-callback之后记得重启xinetd
service xinetd restart
再运行chkconfig --list|grep afs3-callback和netstat -anptu|grep 7001看结果。
回复

使用道具 举报

 楼主| 发表于 2004-12-14 14:39:21 | 显示全部楼层
加了空格之后好了,我想您的方法一定是可以的
[root@mail net]# netstat -anptu|grep 7001
tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN
31932/xinetd

但是我ftp://user:passwd@223.*.*.*:7001还是不行,是不是因为我的mail上的eth1和数据存储的eth1是因为直连的缘故而不行(数据存储上的eth0上设了网关,而172.16.33.1没有设网关),会不会是这个原因~?
回复

使用道具 举报

发表于 2004-12-14 15:31:07 | 显示全部楼层
不会吧
应当不是直连的问题,因为mail服务器可以正确登录数据存储服务器的ftp服务,这就说明mail服务器到数据存储服务器是通的,这就行了。

我现在怀疑是你的web服务器到你的mail服务器不通。试试从web服务器登录mail服务器上的其他服务看通吗?

再有,不用ftp://user:passwd@223.*.*.*:7001,改用ftp://223.*.*.*:7001,然后再输入用户名和密码!
回复

使用道具 举报

 楼主| 发表于 2004-12-14 20:53:00 | 显示全部楼层
非常感谢你的帮助,从WEB服务器可以登陆到mail服务器,并且可以正常收发邮件,但它是ping不通mail服务器的,因为我在mail上过滤了icmp包,mail服务器上的7001端口确实已经开了,我用netstat可以清楚的看到,但从web服务器上telnet 223.*.*.* 7001没有反映,我不知道这算不算正常,然后依你说的ftp://223.*.*.*:7001,然后再输用户名和密码效果和
ftp://user:passwd@223.*.*.*:7001一样。 :-(
回复

使用道具 举报

发表于 2004-12-15 09:22:09 | 显示全部楼层
在mail服务器上测试本机的7001端口的服务成功吗?即:
在mail服务器上执行ftp  223.*.*.*  7001(在控制台中)或ftp://223.*.*.*:7001(在浏览器中),能登录吗?
如果能登录那就是web服务器存在问题;如果不能登录那就是mail服务器的7001端口服务是假象。

还有,仔细检查mail服务器上的防火墙,看它是否允许7001端口通过。最简单的方法就是把防火墙暂时关掉试试。

把测试结果告诉我。
回复

使用道具 举报

 楼主| 发表于 2004-12-15 10:04:35 | 显示全部楼层
[root@mail root]# ftp 223.*.*.* 7001
Connected to 223.*.*.*.
220 Serv-U FTP Server v5.2 for WinSock ready...
500 'AUTH': command not understood.
500 'AUTH': command not understood.
KERBEROS_V4 rejected as an authentication type
Name (223.*.*.*:root): user
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.

可见在mail上连自己的7001完全可以登陆。但在WEB上却不行,包括我现在使用的局域网内部的机器也登路不上。我是在mail上的防火墙关了的情况下试的~(IPTABLES -F )
回复

使用道具 举报

发表于 2004-12-15 11:14:20 | 显示全部楼层
上面结果已经证明我提出的端口转发成功了,剩下的就是web服务器和mail服务器环境的问题。

现在最关键的问题是从web服务器上telnet 223.*.*.* 7001不成功,也就是mail服务器7001端口对外还是没开放。

在web服务器上测试下面命令,并把结果贴一下:
telnet 223.*.*.* 25
telnet 223.*.*.* 110
回复

使用道具 举报

发表于 2004-12-15 11:22:00 | 显示全部楼层
xmlcf,这位朋友,您确定它有起xinetd服务吗?
或者说依靠xinetd来分配请求吗?
也许都是standalone方式的呢....
还是要写iptables....
另外最好不要动/etc/services
楼主需要先了解一下ftp的工作方式:)
如果只是映射端口的话,看看iptables 1.1.9指南就好了,做dnat容易...
做个dnat写条语句比你的办法容易...
回复

使用道具 举报

 楼主| 发表于 2004-12-15 12:40:39 | 显示全部楼层
telnet 223.*.*.* 25
telnet 223.*.*.* 110
都是正常的,这点我肯定。
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 223.*.*.* --dport 7001 -j DNAT --to-destination 172.16.33.1:21
iptables -t nat -A POSTROUTING -p tcp -s 172.16.33.1 --sport 21 -j SNAT --to-source 223.*.*.*这两句我都用过了,都没用~好多网络上的关于ftp做映射的例子我试了不少,都没有成功~
回复

使用道具 举报

发表于 2004-12-15 13:55:04 | 显示全部楼层
现在只有一种解释,mail服务器的防火墙没关,
再检查一下防火墙的设置,
我不知道IPTABLES -F是不是就代表关了防火墙(我对iptables不熟),建议你找个防火墙高手问问。

我已经想不到还有其他什么原因了…… :-(
回复

使用道具 举报

发表于 2004-12-15 14:12:47 | 显示全部楼层
在公司的局域网中我成功的实现7001端口的转发
A机器:192.168.0.22 windows 2000 pre
B机器:192.168.0.39 Redhat Linux 9.0
C机器:192.168.0.1 windows server 2003  ServU 5.1提供21端口的ftp服务
在B机器上做了/etc/xinetd.d/afs3-callback文件后就可以实现:
在A机器的IE中输入ftp://192.168.0.39:7001访问到C机器ServU提供的ftp服务。
所以说,xinetd进程可以完成ftp服务的转发,完全没有问题。
回复

使用道具 举报

发表于 2004-12-15 18:11:22 | 显示全部楼层
不是能不能的问题, 而是简单与复杂的问题,如果一只手可以拿着两只筷子吃饭,为什么要分两只手,只是觉得麻烦:)

另外主要是个人一般不用xinetd了,所以...

不是要跟兄弟抬杠,而是觉得用iptables做个dnat比兄弟这样修改xinetd要来的容易和方便。。。

而且如果修改了/etc/service,总觉得那么别扭,不规范的说...
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-6 19:20 , Processed in 0.077992 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

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