I am not a Linux or really even a command line person, but I've been tasked with setting up a Linux server for a company intranet.
I've set up a CentOS 7 installation in HyperV on Windows 10. I then got the AMP stack set up inside, and I got internet from the network passing through Win10 into CentOS. And I got the CentOS web server have it's own IP address and be accessible from the outside network.
I am now trying to get FTP working, so that when I move the VM to it's eventual real server, which isn't on my desktop, I can move files to it via FTP. I have followed numerous tutorials centered on vsftp
. I have installed it, I have added FTP access to firewall-cmd
. I have messed with iptables
, and then found out that apparently CentOS uses firewalld
, not iptables
?
In /etc/vsftp/vsftp.conf
:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist
The contents of /etc/vsftpd.userlist
:
tester
Status of vsftpd
:
When I try to connect via FTP, I see:
What am I doing wrong?
Учитывая тот факт, что ваш FTP-клиент показывает «Соединение отклонено», я считаю, что ваш брандмауэр настроен правильно, но vsftpd просто не прослушивает адрес, к которому вы пытаетесь подключиться ( 192.168.15.101
). Это сообщение появляется, когда служба либо не запущена на целевом сервере, либо не прослушивает адрес, к которому вы пытаетесь подключиться. Как видно на моем тестовом сервере в обеих таких ситуациях:
[root@host ~]# telnet 192.168.122.173 21
Trying 192.168.122.173...
telnet: connect to address 192.168.122.173: Connection refused
Если бы это была проблема с брандмауэром, вместо этого ваше сообщение об ошибке было бы «Нет маршрута к хосту»:
[root@host ~]# telnet 192.168.122.173 21
Trying 192.168.122.173...
telnet: connect to address 192.168.122.173: No route to host
Несколько вещей, которые я хотел бы подтвердить:
Слушает ли vsftpd на этом адресе? Если вы видите следующее, значит, он должен прослушивать все доступные адреса IPv4 и IPv6 - если вы видите что-то еще, то это может быть вашей проблемой:
[root @ ftpsrv ~] # ss -pln | grep -i ftp
tcp LISTEN 0 32 -> ::: 21 <- ::: * users: (("vsftpd", pid = 1636, fd = 3))
Это адрес, который вы подключаетесь к тому же серверу, что и vsftpd? ip ad
сообщит вам - никогда не помешает перепроверить. Вы также можете попробовать подключиться к vsftpd по telnet с сервера, на котором он работает, просто чтобы убедиться, что он работает локально.
SFTP - еще один вариант, как упоминал @Sven, хотя он не использует vsftpd, а скорее ваш сервер OpenSSH. На самом деле он включен по умолчанию во многих системах - просто проверьте свой файл / etc / ssh / sshd_config
на что-нибудь вроде:
Subsystem sftp /usr/libexec/openssh/sftp-server
man 8 sftp-server
может предоставить вам дополнительную информацию об этом.