我有一个带有raspberryPi和Windows计算机的家庭网络。我想通过FTP在这两者之间共享文件。所以我在raspberryPi上下载,安装和配置了VSFTPD。现在我可以从rasPi本地连接此服务器,但不能从我的Windows PC连接。
您可以在下面找到更多信息,命令输出,配置文件等。
**** Raspberry Pi ****
vsftd.conf
$variable = time();
sudo service --status-all
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
user_sub_token=$USER
local_root=/home/$USER/ftp
nmap localhost
> sudo service --status-all
[ + ] vsftpd
ftp localhost
> nmap localhost
Starting Nmap 6.00 ( http://nmap.org ) at 2015-12-16 22:55 EET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.029s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 996 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
5002/tcp open rfe
Nmap done: 1 IP address (1 host up) scanned in 4.80 seconds
**** ****的Windows
ping 192.168.2.140
> ftp localhost
Connected to localhost.
220 (vsFTPd 2.3.5)
Name (localhost:pi): pi
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp 192.168.2.140
> ping 192.168.2.140
Pinging 192.168.2.140 with 32 bytes of data:
Reply from 192.168.2.140: bytes=32 time=1ms TTL=64
Reply from 192.168.2.140: bytes=32 time<1ms TTL=64
Reply from 192.168.2.140: bytes=32 time<1ms TTL=64
Reply from 192.168.2.140: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.2.140:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
感谢您的帮助。
答案 0 :(得分:0)
您可以在本地连接但不能远程连接的一个可能原因是由于哪个用户VSFTPD正在访问本地用户帐户。是ROOT还是您登录的用户ID。
在审核您的设置时,我注意到您:
chroot_local_user=YES
write_enable=YES
local_root=/home/$USER/ftp
我还想补充一下:
allow_writeable_chroot=YES
seccomp_sandbox=NO
我会执行:
setsebool -P ftp_home_dir
如果这个建议失败了,我还在Ask Fedora论坛中提出了类似的问题。 Link to Question。在这个问题中,我发布了几篇关于设置VSFTPD的文章的链接。也许其中一个会给你提示要寻找什么。
他们的一些建议是:
allow a global user for VSFTPD full file system access
这是一个非常危险的选择,并打破了许多安全协议VSFTPd试图帮助保护您。
change the read write privileges on /home/$users to a-w
如果添加“allow_writeable_chroot = YES”并将SELinux ftp_home_dir设置为ON,则不需要进行此更改。
希望这会有所帮助。