我正在尝试使用两个vsftpd.conf文件启动vsftpd。一个用于ipv4,另一个用于ipv6。它适用于我的另一个vps,但是这个我无法同时启动它们。怎么了?
答案 0 :(得分:0)
我倾向于认为IPv6代码中存在错误。当我尝试启动IPv6版本时,我得到了同样的错误。当我尝试使用IPv6配置文件启动vsftpd时会发生以下情况:
root@jsilverman-vagrant:~# /usr/sbin/vsftpd /etc/vsftpd6.conf
500 OOPS: run two copies of vsftpd for IPv4 and IPv6
root@jsilverman-vagrant:~#
相比之下,使用IPv4启动vsftpd工作正常:
root@jsilverman-vagrant:~# /usr/sbin/vsftpd /etc/vsftpd4.conf
^C
root@jsilverman-vagrant:~#
文档非常清楚,应该有两个vsftpd副本运行,一个用于IPv4,一个用于IPv6。只是为了证明这个问题:
root@jsilverman-vagrant:~# diff /etc/vsftpd4.conf /etc/vsftpd6.conf
14c14
< listen=YES
---
> # listen=YES
20c20
< # listen_ipv6=YES
---
> listen_ipv6=YES
root@jsilverman-vagrant:~# /usr/sbin/vsftpd -v
vsftpd: version 3.0.2
root@jsilverman-vagrant:~# more /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"
root@jsilverman-vagrant:~#
所以我相信我已经正确完成了配置文件。
我认为我要尝试的下一件事(我应该在发布之前尝试过)是从https://sources.debian.net/src/vsftpd/获取vsftpd源代码并尝试构建并测试它。但是我不打算在工作中尝试,我会在今晚在家尝试。我会向你汇报。
我找到了一个不起作用的答案
我对此感到不安,所以我做了一些搜索,我在an archlinux page找到了答案。文档说应该注释掉listen属性。这是文档错误。正确的解决方案是将listen参数设置为NO,如
listen=NO
我做了那个改变,瞧瞧!
root@jsilverman-vagrant:~# /usr/sbin/vsftpd /etc/vsftpd6.conf
这真的有效吗?不,因为现在IPv4失败了! root @ jsilverman-vagrant:〜#/ usr / sbin / vsftpd /etc/vsftpd4.conf 500 OOPS:无法绑定侦听IPv4套接字 root @ jsilverman-vagrant:〜#
如果我首先启动IPv4然后启动IPv6,会发生什么? root @ jsilverman-vagrant:〜#/ usr / sbin / vsftpd /etc/vsftpd6.conf 500 OOPS:无法绑定侦听IPv6套接字 root @ jsilverman-vagrant:〜#
再次RFTM。
答案 1 :(得分:0)
# listen=YES
listen_ipv6=YES
或
listen=YES
#listen_ipv6=YES
ip6或ip4可以一次运行。无法同时收听两者。 最好在另一个IP上启动ipv6 FTP服务器
netstat -nlp | grep ftp
检查ftp正在监听哪个IP