当前位置: 技术问答>linux和unix
外网访问内网ftp服务器问题
来源: 互联网 发布时间:2016-08-23
本文导语: 纠缠了好长时间解决这个问题,文章标题都写好了“求助……”。 正在写的时候时候灵光一现,终于解脱了。 把过程记录下来,高兴又学到了点东西。大家五一快乐! 开始的情况是,局域网通过其中一台电脑A拨号...
纠缠了好长时间解决这个问题,文章标题都写好了“求助……”。
正在写的时候时候灵光一现,终于解脱了。
把过程记录下来,高兴又学到了点东西。大家五一快乐!
开始的情况是,局域网通过其中一台电脑A拨号上网,然后共享这个连接。另外一台安装的suse操作系统的服务器B,由vsftpd提供ftp服务,内网A、C、D等等ftp访问B是没有问题的。
那么接下来的事情很简单,在A上把B的21端口映射出去外网就能通过A的外网ip加上配置映射的端口访问B提供的ftp服务。
思路没问题,动手设置。
一动手,问题来了,从外网连接不上。
这时我检查了内网访问B的ftp端口,是21没错。
难道B的防火墙阻止外网ip访问?到服务器上一看设置,防火墙没开。
上网查资料,发现:
原来如果客户端用主动模式,那么需要把20端口也映射出去;如果用被动模式,那么需要配置vsftpd被动模式下的端口(配置文件中能设置可能使用的最小到最大端口)并把这些端口都映射出去。在我这里如果要让客户端用被动模式需要特别注意的是配置文件“ /etc/vsftpd.conf”中需要加上
pasv_address=[A拨号产生的外网IP]
这样一个参数。因为被动模式下服务器会告诉客户端我打开了某某某端口,我的ip是多少多少,你过来连接吧。如果发出去的ip不是外网的ip,那么被动模式的客户端是连接不到服务器的。
有了这样一个思路,好办了,把B的20端口也映射出去,客户端用主动模式应该没问题了吧。
答案是,某个地方还有问题。
很佩服自己,一个简单的问题弄这么复杂。
到这里已经开始构思求助帖了。
突然想起,B上面网络是否设置有问题?
在B上访问外网,不通。心里一喜,好像找到问题了。
原来是网关配置不对。。。
配置网关,重新测试。
telnet ip port
"Welcome to heaven."
嘿嘿,通了。
正在写的时候时候灵光一现,终于解脱了。
把过程记录下来,高兴又学到了点东西。大家五一快乐!
开始的情况是,局域网通过其中一台电脑A拨号上网,然后共享这个连接。另外一台安装的suse操作系统的服务器B,由vsftpd提供ftp服务,内网A、C、D等等ftp访问B是没有问题的。
那么接下来的事情很简单,在A上把B的21端口映射出去外网就能通过A的外网ip加上配置映射的端口访问B提供的ftp服务。
思路没问题,动手设置。
一动手,问题来了,从外网连接不上。
这时我检查了内网访问B的ftp端口,是21没错。
难道B的防火墙阻止外网ip访问?到服务器上一看设置,防火墙没开。
上网查资料,发现:
原来如果客户端用主动模式,那么需要把20端口也映射出去;如果用被动模式,那么需要配置vsftpd被动模式下的端口(配置文件中能设置可能使用的最小到最大端口)并把这些端口都映射出去。在我这里如果要让客户端用被动模式需要特别注意的是配置文件“ /etc/vsftpd.conf”中需要加上
pasv_address=[A拨号产生的外网IP]
这样一个参数。因为被动模式下服务器会告诉客户端我打开了某某某端口,我的ip是多少多少,你过来连接吧。如果发出去的ip不是外网的ip,那么被动模式的客户端是连接不到服务器的。
有了这样一个思路,好办了,把B的20端口也映射出去,客户端用主动模式应该没问题了吧。
答案是,某个地方还有问题。
很佩服自己,一个简单的问题弄这么复杂。
到这里已经开始构思求助帖了。
突然想起,B上面网络是否设置有问题?
在B上访问外网,不通。心里一喜,好像找到问题了。
原来是网关配置不对。。。
配置网关,重新测试。
telnet ip port
"Welcome to heaven."
嘿嘿,通了。
|
不过低级错误谁都会犯的
|
楼主好同志,我就喜欢这样的,爱动脑筋,
其实太多太多的问题,多想一点,GOOGLE一下就解决了,哎
其实太多太多的问题,多想一点,GOOGLE一下就解决了,哎
|
这种感觉最爽了