Arch LinuxがインストールされているRapsberry Pi B +があります。uname
レポートバージョン:
[computer@computer001 ~]$ uname -a
Linux computer001 3.18.3-3-ARCH #1 PREEMPT Mon Jan 26 20:10:28 MST 2015 armv6l GNU/Linux
FTPサーバーをインストールしましたが、pacman -S vsftpd
エラーなしでインストールが完了しました。その後、設定を試みましたが、結果は次のとおりですvsftpd.conf
。
anonymous_enable=NO
local_enable=YES
write_enable=YES
#local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=computer
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to personal ftp service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
今すぐ再起動しようとすると、次の結果vsftpd
が表示されます。
[computer@computer001 etc]$ sudo systemctl restart vsftpd.service && systemctl status -l vsftpd.service
* vsftpd.service - vsftpd daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 1970-01-01 06:32:24 UTC; 112ms ago
Process: 350 ExecStart=/usr/bin/vsftpd (code=exited, status=2)
Main PID: 350 (code=exited, status=2)
これも次の出力ですsudo journalctl | grep -i vsftp
。
Jan 01 06:32:24 computer001001 sudo[347]: computer001 : TTY=pts/0 ; PWD=/etc ; USER=root ; COMMAND=/usr/bin/systemctl restart vsftpd.service
Jan 01 06:32:24 computer001001 systemd[1]: Starting vsftpd daemon...
Jan 01 06:32:24 computer001001 systemd[1]: Started vsftpd daemon.
Jan 01 06:32:24 computer001001 systemd[1]: vsftpd.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Jan 01 06:32:24 computer001001 systemd[1]: Unit vsftpd.service entered failed state.
Jan 01 06:32:24 computer001001 systemd[1]: vsftpd.service failed.
単位スクリプトは次のとおりです/usr/lib/systemd/system/vsftpd.service
。
[Unit]
Description=vsftpd daemon
After=network.target
[Service]
ExecStart=/usr/bin/vsftpd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
実行すると、sudo /usr/bin/vsftpd
次のエラーが発生します。
500 OOPS: config file not owned by correct user, or not a file
/etc/vsftpd.conf
viaのファイル権限を変更し、sudo chown root:root /etc/vsftpd.conf
サーバーを手動で起動できるようになりました。日付/時刻が間違っていることもわかっていますが、まだ設定していません。私は何を見逃していますか?
答え1
vsftpdでこの問題を誤って発見した人がいる場合は、次のコマンドでどのようなエラーが発生するかを確認してください。
/usr/sbin/vsftpd /etc/vsftpd.conf
次の場合:
500 OOPS: SSL: cannot load RSA private key
その後、SSL証明書を再生成します(またはプロバイダから再発行)。
sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
私は働く/etc/vsftpd.conf
:
anonymous_enable=NO
connect_from_port_20=YES
dirmessage_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
listen_ipv6=YES
listen=NO
local_enable=YES
local_umask=022
pam_service_name=vsftpd
pasv_enable=Yes
pasv_max_port=10200
pasv_min_port=10100
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
secure_chroot_dir=/var/run/vsftpd/empty
ssl_ciphers=HIGH
ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
use_localtime=YES
write_enable=YES
xferlog_enable=YES
ドットで始まるファイル名を表示するには、以下を追加します。
force_dot_files=YES
答え2
/etc/vsftpd.conf
root:root
via権限がリセットされ、sudo chown root:root /etc/vsftpd.conf
サーバーvsftpd
はviaを介して起動され、手動sudo systemctl restart vsftpd.service
で実行されますsudo /usr/bin/vsftpd
。
答え3
ステップ1:vsftpd.confを確認する
listen=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
ステップ2:実行中のFTPサービスを確認する
$ lsof -i | grep ftp
ステップ3: xinetdを停止
$ sudo service xinetd stop
ステップ4:xinetdを停止したら、次のように入力してvsftpdサービスを再起動します。
$ /etc/init.d/vsftpd restart
答え4
同じ状態エラーが発生します。2/INVALIDARGUMENT
私にとって、問題は私の設定の手動アドレス解決に関連していました。
pasv_addr_resolve=YES
pasv_address=xxx.yyy.org
アドレスを確認するには、起動時にインターネット接続を実行する必要があります。これを行うには、私がしなければならないことがあります。
sudo systemctl edit vsftpd
そして次の行を追加してください:
[Unit]
Wants=network-online.target
After=network-online.target