对于我的网络安全课程,我必须在虚拟机上设置 FTP 服务器。我们设置了 3 个虚拟机 - 网关、客户端和服务器。我已经使用以下命令安装了 vsftpd:
sudo apt-get install vsftpd
vsftpd-anon.conf
然后我在以下位置创建了一个配置文件/etc/vsftpd/
。该文件包含:
#Set the server to run in standalone mode
listen=YES
#Enable anonymous access
local_enable=NO
anonymous_enable=YES
#Disable write access
write_enable=NO
#Set root directory for anon connections
anon_root=/var/ftp
#Limit retrieval rate
anon_max_rate=2048000
#Enable logging user login and file transfers. /var/log/vsftpd.log
xferlog_enable=YES
#Set interface and port
listen_address=192.168.50.5
listen_port=21
IP 地址 192.168.50.5 是我的服务器虚拟机的 eth0。当我运行命令时
sudo vsftpd /etc/vsftpd/vsftpd-anon.conf
我收到错误:
500 OOPS: could not bind listening IPv4 socket
为了检查端口 21 上正在运行的内容,我运行了以下命令:
sudo netstat -tulpn
并看到了这个:
我发出命令:
sudo killserver 29383
并再次检查。仍然vsftpd
存在,但 PID 不同。运行命令:
sudo killall vsftpd
做同样的事情。我已经尝试过重新安装。有人知道发生了什么事吗?
答案1
您确定错误的根本原因是正确的 -could not bind listening IPv4 socket
意味着某些东西已经在侦听端口 21(默认 ftp 服务器端口)。
要vsftpd
正确停止当前正在运行的程序:
sudo service vsftpd stop
完成此操作后,使用自定义的初始化脚本启动守护进程:
sudo vsftpd /etc/vsftpd/vsftpd-anon.conf
一旦确认其正常工作,您将需要更改初始化脚本并禁用现有vsftpd
服务,以便它不会在启动时自动启动。
答案2
您收到此错误可能是因为 xinetd ftp 正在运行。
下面提到的过程将解决以下错误:
A) 500 OOPS:无法绑定侦听 IPv4 套接字,对于 vsftpd
B) 连接后服务器立即挂起,对于 ncftpget
请按照以下步骤纠正错误:
1) 要查看正在运行的 ftp 服务,请使用
$ lsof -i | lsof -i grep ftp
2)停止xinetd:
$ sudo 服务 xinetd 停止
3) 停止 xinetd 后,输入以下命令重新启动 vsftpd 服务:
$ /etc/init.d/vsftpd restart (成为 root 并运行此命令)
4) 还用这个检查 vsftpd.conf
听=是
本地启用=是
写启用=是
本地掩码=022
dirmessage_enable=是
use_localtime=YES
xferlog_enable=是
secure_chroot_dir=/var/run/vsftpd/空
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem