suchen
HeimBetrieb und InstandhaltungBetrieb und Wartung von LinuxEinführung in die Installation und Konfiguration von vsftpd unter Linux

本文主要介绍了linux下vsftpd的安装及配置使用详细步骤 ,需要的朋友可以参考下,希望能帮助到大家。

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

1.1  安装

命令:

yum install vsftpd -y

配置Vsftpd

安装完之后我们要对它进行配置,才能正常使用。

编辑vsftpd的配置文件

 vi /etc/vsftpd/vsftpd.conf

在配置文件中找到“anonymous_enable=YES”,将"YES"改为"No",将匿名登录禁用。

添加开机自动启动,

chkconfig vsftpd on

不确定是否已经加入了开机启动项可以运行chkconfig –list进行查看

1.2  创建用户

命令:useradd ftpuser

指定密码:passwd ftpuser

此用户就是用来登录ftp服务器用的。

这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.

----------------------------------------------------------------------------------------------------------------------------------

设置FTP用户的账号,例如账号为“ftpuser1”,目录为/home/ftpuser1,且设置不允许通过ssh登录。

useradd -d /home/ftpuser -s /sbin/nologin ftpuser

设置账号对应的密码,例如密码为“ftpuser”

passwd ftpuser

1.3  开启selinux权限

VSFTPD是一个FTP服务器程序,然后SELinux是CentOS的防火墙组件。由于 vsftpd 默认被 SELinux 拦截,所以会遇到的FTP以下的问题:

1.226 Transfer done (but failed to open directory).(传输完成,但是打开路径失败)

2.550 Failed to change directory(更改路径失败)

3.
553 Could not create file.

4.

或者干脆在发送了LIST命令以后,服务器没响应,超时断开。

遇到这样的问题,通常是vsftpd 没有足够的权限,很有可能是被SELinux阻止了。

查看命令:getsebool -a | grep ftp

getsebool -a | grep ftpd
#以下是显示出来的权限,off是关闭权限,on是打开权限
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
ftp_home_dir --> off

其中,ftp_home_dir和allow_ftpd_full_access必须为on 才能使vsftpd 具有访问ftp根目录,以及文件传输等权限。

      设置命令:setsebool -p xxxxxx on

[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on

1.4  设置或关闭防火墙

因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件

设置:vi /etc/sysconfig/iptables

在行上面有22 -j ACCEPT 下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。

还要运行下,重启iptables

重启:service iptables restart

关闭防火墙:service iptables stop

禁用防火墙重启:chkconfig iptables off

1.5  启动vsftpd

命令:service vsftpd start

  java客户端(代码)调用

package com.jonychen.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;
import java.util.Date;
import java.util.UUID;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class FtpUploadUtil {
  private static ThreadLocal<ftpclient> threadLocal = new ThreadLocal();
  private static ThreadLocal<string> threadLocalHost = new ThreadLocal();
  public static void init(String host,int port,String username,String password) throws SocketException, IOException {
    FTPClient client = threadLocal.get();
    if(client==null) {
      client = new FTPClient();
      //1.连接
      client.connect(host,port);
      //2.登录
      client.login(username,password);
      threadLocal.set(client);
      threadLocalHost.set(host);
    }
  }
  public static String upload(InputStream local,String fileName,String path) throws SocketException, IOException {
    String datePath = DateUtil.date2Str(new Date(),"/yyyy/MM/dd/");
    //路径添加日期
    path+=datePath;
    FTPClient client = threadLocal.get();
    String host = threadLocalHost.get();
    //3.指定文件上传路径(路径不存在返回false)
    boolean exists = client.changeWorkingDirectory(path);
    if(!exists) {
      String pathArray[] = path.split("/");
      String temp = "/";
      for(String p:pathArray) {
        temp+=(p+"/");
        //4.如果文件路径不存在,则创建(一次只能创建一级目录)
        client.makeDirectory(temp);
      }
      //重新指定文件上传路径
      client.changeWorkingDirectory(path);
    }
    //5.指定文件类型
    client.setFileType(FTP.BINARY_FILE_TYPE);
    //获取后缀
    String suffix = fileName.substring(fileName.lastIndexOf("."));
    String uuid = UUID.randomUUID().toString();
    //6.执行上传
    client.storeFile(uuid+suffix, local);
    //7.退出
    client.logout();
    //8.断开连接
    client.disconnect();
    threadLocalHost.remove();
    threadLocal.remove();
    return "http://"+host+"/jonychen"+datePath+uuid+suffix;
  }
  public static void main(String[] args) throws SocketException, IOException {
    InputStream local = new FileInputStream("D:\\Documents\\Pictures\\01.png");
    init("192.168.178.161", 21, "ftpuser", "111111");
     //上传路径
    String res = upload(local, "code.png","/home/ftpuser/ego");
    System.out.println(res);
  }
}</string></ftpclient>

相关推荐:

Linux vsftpd连接报错:500 OOPS: vsftpd的解决办法详解

Linux下利用MySQL建立VSFTPD下的虚拟用户

vsftpd+MySQL创建虚拟用户在Debian Linux之下

Das obige ist der detaillierte Inhalt vonEinführung in die Installation und Konfiguration von vsftpd unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
So stellen Sie das Linux -System aus der Backup wieder herSo stellen Sie das Linux -System aus der Backup wieder herJul 23, 2025 am 12:25 AM

Um das Linux -System erfolgreich aus der Backup wiederherzustellen, müssen Sie zunächst den Sicherungstyp klären und die Schritte ausführen. 1. Bestätigen Sie den Sicherungstyp, z. B. das vollständige Systembild, die Sicherungs- oder Paketliste auf Dateiebene oder Konfigurationsdateien, und wählen Sie die entsprechende Wiederherstellungsmethode gemäß dem Typ, z. B. die Dekomprimierung von Daten mit RSYNC oder TAR. 2. Geben Sie die Wiederherstellungsumgebung über LiveUSB ein, montieren Sie die Stammpartition und den Sicherungsort und verwenden Sie den Befehl, um Daten zu kopieren. 3. Bei der Wiederherstellung von Benutzerdaten und -konfiguration, prüfen Sie die Berechtigungen, das Eigentum und die versteckten Dateien und installieren Sie grub bei Bedarf. V. Das Testen und Vorbereitung im Voraus ist der Schlüssel zur Gewährleistung einer reibungslosen Wiederherstellung.

So verwenden Sie den Befehl 'lsmod'So verwenden Sie den Befehl 'lsmod'Jul 23, 2025 am 12:13 AM

LSMOD ist ein Befehl unter Linux zum Anzeigen geladener Kernelmodule und modulierterem Modulinformationen durch Lesen /Proc /Modules -Datei. Seine Ausgabe enthält drei Spalten: Modul (Modulname), Größe (Größe, Bytes) und verwendet (Anzahl der Referenzen). In Kombination mit Grep können bestimmte Module gefiltert werden, wie z. B. LSMOD | Grepusb werden verwendet, um USB-bezogene Module zu finden. Abhängigkeiten können durch verwendete Spalten identifiziert werden, z. Um Abhängigkeiten eingehend anzuzeigen, ist ModinFomodule \ _Name verfügbar. Gemeinsame Operationen umfassen die Verwendung von Sudomod

So enttäuschen Sie ein DateisystemSo enttäuschen Sie ein DateisystemJul 23, 2025 am 12:06 AM

Um das Dateisystem zu deinstallieren, müssen Sie zunächst den Mount Point -Pfad bestätigen und den Befehl UMOUNT zum Betrieb verwenden. Wenn Sie auf "DeviceIsBusy" stoßen, müssen Sie den besetzten Prozess bewältigen. 1. Verwenden Sie DF-H oder Mount | Grep/Dev, um den Mountspunkt zu bestätigen. 2. Führen Sie Sudoumount [Mount Point] Deinstallation aus; 3. Wenn das Gerät aufgefordert wird, beschäftigt zu sein, schließen Sie die relevanten Programme oder verwenden Sie LSOF, um den Prozess zu überprüfen und zu töten. 4. Verwenden Sie Sudoumount-L, um die Deinstallation zu verzögern. 5. Beim Deinstallieren von NFS können Sie den Parameter -f hinzufügen, um das Deinstallieren zu erzwingen. Achten Sie darauf, dass vor dem Betrieb keine Programmabhängigkeit vorliegt, um Ausnahmen zu vermeiden.

So verwalten Sie Systemprotokolle Remote -SyslogSo verwalten Sie Systemprotokolle Remote -SyslogJul 23, 2025 am 12:06 AM

Die Konfigurationsschritte für die Remote -Verwaltung von Protokollen umfassen: 1. Konfigurieren Sie den lokalen Client so, dass sie Protokolle senden, die RSYLOG -Konfigurationsdatei ändern und mithilfe des TCP -Protokolls übertragen. 2. Richten Sie den Remote -Server so ein, dass sie Protokolle empfangen, Netzwerkmodule aktivieren und die Protokollklassifizierungsspeicher einrichten. 3.. Stärken Sie die Sicherheit, beschränken Sie den Zugriff durch Firewalls, TLS -Verschlüsselung und Protokollfilterung; 4. Fehlerbehebung bei häufigsten Problemen und prüfen Sie die Überwachung, Konnektivität, den Service -Status und die Sicherheitsrichtlinien für die Port -Überwachung. Das Befolgen der oben genannten Schritte kann den stabilen Betrieb des Protokollsystems sicherstellen.

So überprüfen Sie aktive NetzwerkverbindungenSo überprüfen Sie aktive NetzwerkverbindungenJul 22, 2025 am 12:35 AM

Wenn Sie die Netzwerkverbindung auf Ihrem aktuellen Computer kennen möchten, können Sie sie über das Befehlszeilen -Tool anzeigen. Verwenden Sie Netstat-Ano unter Windows, um alle Verbindungen und PIDs anzuzeigen, verwenden Sie SS-Tulnp und LSOF-I-P, um detaillierte Informationen zu erhalten, und kann auch in Echtzeit über grafische Schnittstellen-Tools wie Ressourcenmonitor, Nethogs usw. überwacht werden.

So fördern Sie die Einstellungen des GebietsschemasSo fördern Sie die Einstellungen des GebietsschemasJul 22, 2025 am 12:34 AM

Das Problem der Gebietsschemaeinstellung wirkt sich auf den Betrieb und die Anzeige des Programms aus. Die Lösung lautet wie folgt: 1. Überprüfen Sie die aktuell unterstützte Gebietsschemasliste mit Lokale-A; 2. Generieren Sie fehlendes Gebietsschema, verwenden Sie Sudodpkg-Reconfigurelocales für Debian/Ubuntu und verwenden Sie den SudolocalEDEF-Befehl für Redhat/Centos/Fedora. 3. Ändern Sie die Datei/etc/Standard-/Gebietsschema, um das Standardgebietsschema festzulegen und neu zu laden. 4. SSH -Anmeldungswarnungen müssen das entsprechende Gebietsschema auf dem Server generieren oder die lokale SSH -Konfiguration einstellen. 5. Es wird empfohlen, Lang und LC_CTYPE für abnormale Zeichen in der grafischen Schnittstelle zu vereinen.

So überwachen Sie die Verwendung der FestplattenquoteSo überwachen Sie die Verwendung der FestplattenquoteJul 22, 2025 am 12:33 AM

Um die Verwendung der Festplattenquote zu überwachen, können Sie mit dem Quotenbefehl die Kontingentquote ansehen, Repquota verwenden, um die Gesamtnutzung anzuzeigen und Skripte zu verwenden, um eine automatisierte Überwachung zu erreichen. Spezifische Schritte: 1. Verwenden Sie den Quota-Uusernamen, um die Festplattennutzungsdetails eines bestimmten Benutzers anzuzeigen. 2. Verwenden Sie RepQuota/Pfad/TO/Mountpoint, um alle Benutzerquoten zu batchieren. 3. Schreiben Sie Shell -Skripte, um Repquota- und E -Mail -Benachrichtigungsfunktionen zu kombinieren, um eine automatische Überwachung zu erzielen, und setzen Sie die zeitgesteuerten Cron -Aufgaben für die tägliche Ausführung.

So konfigurieren Sie unbeaufsichtigte Upgrades APTSo konfigurieren Sie unbeaufsichtigte Upgrades APTJul 22, 2025 am 12:20 AM

Unbefragte Upgrades eignen sich zum Verwalten mehrerer Server, dem Reduzieren der manuellen Aktualisierungen oder dem Versäumnis, das System jederzeit zu verwalten. Installieren Sie zunächst das Paket für unbeaufsichtigtes Upgrades: sudoaptinstallunated-upgrades und aktivieren Sie dann die Standardkonfiguration: sudodpkg-Reconfigure-Plowunated-Upgrades. Wählen Sie in der interaktiven Schnittstelle "Ja", um dies zu aktivieren. Benutzerdefiniertes Verhalten kann erreicht werden

See all articles

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.