ftp> ls 500 Illegal PORT command. ftp: bind: Address already in use,500 OOPS: cannot read list

版权声明:本文为博主原创文章,未经博主允许不得转载。如果你非要转载,麻烦加上我的原网址,谢谢。http://blog.csdn.net/qinglingLS https://blog.csdn.net/qinglingLS/article/details/84929754

希望大家看后有什么问题,和好的解决方案
在下面评论,不要默默离开,使得后来者同样一无所获,谢谢!!!

下面有四种错误类型,大家对号入座,谢谢!

出错情况重现如下:

第一个是:
ftp> ls 500 Illegal PORT command. ftp: bind: Address already in use,
关闭了你的ftp客户端程序,
重启ftp服务器:ftpd程序。然后再登陆。
注意下,你是否开了两个连接到一个端口且尚未退出。
如果还不行试试下面的。
我的解决方法:
检查你的/etc/vsftpd/vsftpd.conf
里面不可以有空格,最好不要有换行(特别检查每行的最后有无空格),检查完上面的内容之后,按照上面的网址,修改下passive模式,然后在ftp中切换为ftp模式。

出错原理参考网址:
https://blog.csdn.net/m0_37806112/article/details/81904496
英文网页:
http://hea-www.harvard.edu/~fine/Tech/addrinuse.html

出错原因:
首先,我们先声明:**bind:address already in use的存在是合理的,**在服务端终止之后,会有一个TIME_WAIT的状态,再次打开会出现:bind:address already in use。
服务器端可以尽可能的使用REUSEADDR(在绑定之前尽可能调用setsockopt来设置REUSEADDR)套接字选项,这样就可以使得不必等待TIME_WAIT状态就可以重启服务器了,也就是说:**TIME_WAIT状态还是存在的,**但是不影响我们重新启动服务器。
但是,当我们等上个2-4分钟后,然后在运行,就又没有这种情况了。
很好解释,那只是因为在一定的时间内这个端口还被占用着,没有来的及释放,但是2-4分钟后,端口释放完毕,所以可以正常的运行这个程序了

第二个是:
500 OOPS: cannot read user list file:user_list
解决方案:
检查您的user_list,chroot_list,而且检查你的/etc/vsftpd/vsftpd.conf
里面不可以有空格,最好不要有换行(特别检查每行的最后有无空格)
我改完就可以用了。
其他的解决方案:
修改chroot_local_user=YES chroot_list_enable=NO之后,连接ftp可能会报错:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
如果启用chroot,必须保证ftp根目录不可写,这样对于ftp根直接为网站根目录的用户不方便,所以建议将ftp根目录/home/ftpadmin访问权限改写如下

chmod a-w /home/ftpadmin

处理方案原文
原文:https://blog.csdn.net/kuluzs/article/details/71663199

在这里插入图片描述

第三个是:
500 Illegal PORT command.
ftp: bind: Address already in use
明明可以登陆进去,但是无法ls也无法dir只能cd进目录
解决参考网址:

原先配置好的vsftpd突然不行了,不知为啥,感觉跟网络有关,这个网络总是有dns拦截的现象,同事就是连不上,我的笔记本却可以连接上…我的ubuntn,同事用的win7下的filezila…
https://www.cnblogs.com/flex_fly/p/3532773.html
在windows的dos窗口用FTP命令去连时,可以登录,但使用ls等命令时,出现:
500 Illegal PORT command.
425 Use PORT or PASV first.
根据提示是被动模式的问题。
https://blog.csdn.net/feng_1029855612/article/details/57644195
主要是由于Iptables防火墙不支持的情况:
https://blog.csdn.net/xueling022/article/details/53183929

每个人的操作不同,可能不一定有效,
我的解决方法:
检查你的/etc/vsftpd/vsftpd.conf
里面不可以有空格,最好不要有换行(特别检查每行的最后有无空格),检查完上面的内容之后,按照上面的网址,修改下passive模式,然后在ftp中切换为ftp模式。

FTP主/被动模式的原理
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是
客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是
客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

主动模式:服务器向客户端敲门,然后客户端开门
被动模式:客户端向服务器敲门,然后服务器开门
所以,如果你是如果通过
代理上网的话,就不能用主动模式,
因为
服务器敲的是上网代理服务器的门,而不是敲客户端的门
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,
除非客户端开放大于1024的高端端口

在这里插入图片描述
解决过程:
在这里插入图片描述

第四种 错误:
输入用户名ftpuser和密码
如果登录出现530错误:
参考网址:
我非常喜欢的教程,麻雀虽小,五脏俱全那种!!!!博主很赞!!

https://www.cnblogs.com/dupengcheng/p/6790143.html#4131982

输入用户名ftpuser和密码
如果登录出现530错误:

vim /etc/pam.d/vsftpd

注释掉#auth required pam_shells.so
如下图
在这里插入图片描述
在这里插入图片描述
然后在ftp登陆后ls一下,如果失败了,切换到被动模式即可
在ftp启动登陆后输入下面的代码

passive mode

ftp登陆格式:
在这里插入图片描述

ftp xxx.xxx.xxx.xxx

成功实例:
在这里插入图片描述

然后如果在ftp运行下(也就是在客户端对服务器端ftp文件夹进行修改)
mkdir一下发现无法创建文件夹 550 create directory operation failed
在服务器端:也就是ftpd程序上修改(如果你用的是两台机器的话,在服务器 上按照下面修改,一台的话直接操作就行)

setsebool -P ftpd_disable_trans on
/etc/init.d/vsftpd restart

第五种情况:
500 Illegal PORT command.
425 Use PORT or PASV first.

FTP时显示500 Illegal PORT command的解决或者IE无法访问解决FTP

我一直被FTP所困惑
在公司的局域网用FTP命令访问外网的FTP SERVER,执行任何命令(如dir,ls,put,get)总是报下面的错误
ftp:500 Illegal PORT command. 425
ftp:Use PORT or PASV first
或者是下面的错误
ftp:500 Illegal PORT command.
ftp: bind: Address already in use
主要是由于Iptables防火墙不支持
ip_nat_ftp
ip_conntrack_ftp
在linux的ftp服务器上执行下列命令即可解决

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

原文:https://blog.csdn.net/silence1214/article/details/6002474

猜你喜欢

转载自blog.csdn.net/qinglingLS/article/details/84929754
今日推荐