我在主机上运行 Ubuntu 22.04(计算机 A),在虚拟机中运行 Ubuntu 20.04(计算机 B)。我希望能够从主机 ftp 到 VB,但每次尝试 ftp 或 ssh 时都会被拒绝连接。
我按照网上的说明使用 vsftpd 设置了一个 ftp 服务器。我可以使用 ftp localhost 从计算机 B 访问 ftp,所以我认为服务器设置正确。
run@write:/etc$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:run): run
331 Please specify the password.
Password:
230 Login successful.
我已经设置了防火墙来监听相关端口
run@write:/etc$ sudo ufw status
Status: active
To Action From
-- ------ ----
21/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
990/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH ALLOW Anywhere
21/tcp (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
计算机 B 上的 ipconfig 显示 IP 地址是 10.0.2.15,因此我在 VB 中的网络设置中设置了端口转发。
但是当我尝试从 AI 通过 ftp 连接到 B 时,使用 ftp 连接被拒绝。我甚至没有要求输入用户名和密码。
我尝试 telnet 到 localhost 和端口号,但连接被拒绝。我使用 nmap 查看哪些端口是打开的,但 ufw 中指定的端口均未打开,而其他两个端口已打开,所以我想知道故障发生在哪里。
nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2022-11-21 23:04 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000028s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
631/tcp open ipp
5500/tcp open hotline
问题是否与我如何设置虚拟盒有关,或者与我如何尝试通过 ftp 连接到虚拟盒有关?
答案1
我设法弄清楚了可能发生什么事。
我首先关闭了防火墙
sudo ufw disable
然后我将用于 ftp 的端口更改为 2121,并设置端口转发以将 2121 发送到虚拟盒内的 21。
此后,一切都按预期进行。我不知道计算机 A 是否以某种方式为自己保留了 21,但这个解决方案对我来说有效