我尝试在上网本上设置 FTP 服务器,但无法连接到它。现在我想知道我怎么能弄清楚我做错了什么。
我有一个 Apache2 服务器在其上运行以与域 (domain.dnsdynamics.com) 一起使用,我可以连接到该服务器。// 编辑:我可以访问http://domain.com,但不能访问 ftp://domain.com
我可以采取哪些步骤来找出问题所在?
编辑:网络通过 D-Link DIR-615 路由器连接,转发端口下为 20 和 21,均使用静态 IP 转发到我的上网本。
上网本上没有安装防火墙。
我尝试通过 Internet 和 LAN 进行连接。
我已经通过 Chrome 和 FileZilla 进行了测试,都没有回应。(FileZilla 超时,Chrome 找不到页面)。转到 http:// 作品,ftp:// 不
Edit2:我一直在尝试vsftpd,这似乎是 Ubuntu 的默认 FTP 服务器
Edit3:(vsftpd.conf不带评论)。默认版本,到目前为止我没有对其进行任何更改。
listen=YES
local_enable=YES
dirmessage_enable=YES
allow_writeable_chroot=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Run Code Online (Sandbox Code Playgroud)
首先,使用以下命令确保 vsftpd 服务正在运行:
sudo systemctl status vsftpd.service
Run Code Online (Sandbox Code Playgroud)
如果不是: sudo systemctl start vsftpd.service
接下来,您需要确保可以使用服务器本身(使用环回)连接到 ftp:
ftp 127.0.0.1
[YOUR_USERNAME]
[YOUR_PASSWORD]
Run Code Online (Sandbox Code Playgroud)
如果您的用户已登录,则意味着问题不是来自 vsftpd 服务本身。我猜这可能是因为 FTP 连接模式。FTP 上有两种连接模式:主动模式和被动模式。下面简单介绍一下这两种模式:
主动模式:
1.客户端连接到服务器的21端口(命令通道)
2.服务器将FROM 20端口连接到客户端指定的端口(DATA)
被动模式:
1.客户端连接到服务器的21端口(命令通道)
2. 客户端从随机端口连接到服务器指定的端口(DATA)
默认情况下,FTP 客户端应用程序使用被动模式,因为它更“安全”。因此,在此模式下,端口 20(数据通道)的端口转发已过时,因为外部客户端(Internet)正在尝试连接到数据通道的另一个端口。因此,您需要切换到活动模式,以便数据通道连接由服务器(使用端口 20 发送)而不是客户端完成。
如下图所示,在 FileZilla 客户端,您可以切换到 Active Mode:

ftp默认情况下,该命令也使用被动模式。要强制其进入主动模式,您需要执行以下操作:
ftp [YOUR_FTP_SERVER_IP]
passive
Run Code Online (Sandbox Code Playgroud)
通过这样做,被动标志将被设置为false并且数据通道将使用主动模式(如果你再次这样做,它会将其设置回true)。(来源:https : //www.tutorialspoint.com/unix_commands/pftp.htm https://serverfault.com/questions/152245/how-to-disable-passive-mode-in-linux-ftp-command)
我希望我的解释不会太混乱......
| 归档时间: |
|
| 查看次数: |
9160 次 |
| 最近记录: |