[ root@localhost ~]# yum -y install vsftpd
このユーザーは、ftpサーバーへのログインに使用されます。
[ root@localhost ~]# useradd ftpuser
このようなユーザーを作成したら、これを使用してログインできます。匿名ではなく通常のログインを使用することを忘れないでください。ログイン後のデフォルトのパスは/ home / ftpuserです。
[ root@localhost ~]# passwd ftpuser
パスワードを2回入力した後、パスワードを変更してください。
ftpのデフォルトポートは21であり、centosはデフォルトで開かれていないためです。
centos7のファイアウォールがファイアウォールに変更されました。iptablesを使用しても効果はありません。ポートを開く方法は次のとおりです。
firewall-cmd --zone=public --add-port=80/tcp --permanent
成功を成功として返します。
コマンドの意味:
[ root@localhost ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent
[ root@localhost ~]# firewall-cmd --reload
開いているポートを表示する
[ root@localhost ~]# firewall-cmd --list-ports
外部ネットワークにはアクセスできますが、selinuxが問題を引き起こしているため、ディレクトリを返すことも(ftpのアクティブモードを使用すると、パッシブモードにもアクセスできません)、アップロードすることもできません。
selinuxを変更します。
次のコマンドを実行して、ステータスを表示します。
[ root@localhost ~]# getsebool -a | grep ftp
PS:私のものは変更されており、あなたのものとは異なる場合があります。
上記のコマンドを実行し、結果を返して、両方の回線がオフになっていることを確認します。これは、外部ネットワークアクセスが有効になっていないことを意味します。
[ root@localhost ~]# setsebool -P allow_ftpd_full_access on
[ root@localhost ~]# setsebool -P tftp_home_dir on
FileZillaでテストしたところ、ログインは成功しましたが、ディレクトリを読み取ることができませんでした。送信モードを変更してみましょう。
FileZillaのアクティブモードとパッシブモードの変更:
メニュー:編集→設定
[ root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd.confファイルを変更します。
保存:wq、Enterキーを押して終了します。
[ root@localhost ~]# service vsftpd restart
デフォルトで有効になっていますが、ポート範囲を指定するには、vsftpd.confファイルを開いて追加します
pasv_min_port=30000
pasv_max_port=30999
ポート範囲が30000〜30999であることを示します。これは自由に変更できます。変更後、vsftpdを再起動します。
[ root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
[ root@localhost ~]# service vsftpd restart
このポート範囲が指定されているため、ファイアウォールは対応するポートも開きます。
[ root@localhost ~]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent
[ root@localhost ~]# firewall-cmd --reload
見る:
[ root@localhost ~]# firewall-cmd --list-ports
30000-30999 / tcpがあることがわかり、完了しました。
[ root@localhost ~]# chkconfig vsftpd on
FileZillaのFTP転送モードをパッシブモードに変更し、接続して、入ることができることを確認します。
アドレスバーに入力:ftp:// server address
次のポップアップボックスにアカウントとパスワードを入力します。
c。Javaプログラム
プログラムを作成するには、ftpはcommons-net-3.3.jarパッケージに依存する必要があります
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;publicclassTestFTP{publicstaticvoidmain(String[] args) throws Exception, IOException { FTPClient ftpClient =newFTPClient(); ftpClient.connect("192.168.195.138"); ftpClient.login("ftpuser","123456"); FileInputStream inputStream =newFileInputStream(newFile("E:\\taotao\\21.jpg"));//アップロードディレクトリを指定します//ftpClient.changeWorkingDirectory("/home/ftpuser/images/"); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.storeFile("123.jpg",inputStream); inputStream.close();if(ftpClient.logout()){ System.out.println("成功!");}else{ System.out.println("失敗!");}}}
コンソールが正常に印刷されたら、サーバーを確認してください。画像123.jpgが見つかります。
END
Recommended Posts