首先,介绍一下背景:
我已经在本地媒体中心(htpc,运行 Ubuntu 16.04 LTS)上设置了一个 OpenSSH 服务器,然后使用 Android 设备上的 VX Connectbot 应用程序通过 SSH 从外部连接到该服务器 - 使用本指南:https://thepcspy.com/read/remote-str...ess-xbmc-kodi/
在 VX Connectbot 中,我还为“htpc”ssh 连接配置了本地端口转发,使我能够通过 ssh 隧道访问 kodi 实例和传输守护进程。这运行得很好,因此我希望能够使用相同的技术在同一台机器上访问 vsftpd 服务器。
然而,事实并非如此,因为我无法连接 ftp 服务器,尽管我已经为此目的配置了本地端口转发。
这些是当前为 VX Connectbot 中的 htpc ssh 连接配置的端口转发:
Name: transmission http
Type: local
Source port: 9091
Destination: localhost:80
Name: kodi http
Type: local
Source port: 8080
Destination: localhost:8080
Name: ftp
Type: local
Source port: 21212
Destination: localhost:21
正如前面提到的,上面的前两个端口转发按预期工作,但对于 ftp 来说,第三个端口转发却没有。
在 ftp 客户端应用程序中(当前使用 Solid explorer,但也尝试了其他一些应用程序),我创建了一个具有以下设置的 ftp 连接:
Name: htpc (remote)
Remote host name: localhost
Port number: 21212
(路径和用户名/密码省略)。
需要明确的是,我确实在同一个应用程序中配置了另一个 ftp 连接,用于在家庭网络上连接到 ftp 服务器,并且它可以正常工作。
当我尝试从外部连接到 ftp 服务器时,出现错误:连接被拒绝。
我很容易认为我只是在处理防火墙问题,但我不相信情况如此,因为当我尝试从我的 Android 设备建立 FTP 连接时,我在 /var/log/vsftpd.log 中看到了这些行,这告诉我 ftp 客户端实际上已经到达 ftp 服务器,但仍然无法真正建立连接:
Sun Jun 30 00:23:41 2019 [pid 31298] CONNECT: Client "::ffff:127.0.0.1"
Sun Jun 30 00:23:41 2019 [pid 31297] [soren] OK LOGIN: Client "::ffff:127.0.0.1"
Sun Jun 30 00:23:42 2019 [pid 31306] CONNECT: Client "::ffff:127.0.0.1"
Sun Jun 30 00:23:42 2019 [pid 31304] [soren] OK LOGIN: Client "::ffff:127.0.0.1"
我确实尝试允许 iptables INPUT 链上的所有流量,有效地禁用 ftp 服务器主机上传入网络流量的数据包过滤,但这并没有明显的区别,因为当我尝试在我的 Android 设备上的 Solid Explorer ftp 客户端中连接时仍然收到“连接被拒绝”错误。
所以..我对这个问题有点不知所措,真的希望有人能帮助我解决这个问题。
答案1
我最终改用 CX 文件资源管理器中的 SFTP... 虽然速度有点慢,但这不是问题,因为我大部分下载都是在本地网络上进行的(通过普通 FTP 连接)。