我在 Mac Big Sur 机器上使用 Vagrant 运行虚拟 Ubuntu (14.04) 盒。我想将虚拟机上的端口 1234 开放到我的 Mac。从虚拟机中,我可以看到这些端口正在监听
$ sudo lsof -i -P -n | grep LISTEN
[sudo] password for myuser:
mysqld 1425 mysql 19u IPv4 21538 0t0 TCP *:3306 (LISTEN)
sshd 1447 root 3u IPv4 24616 0t0 TCP *:22 (LISTEN)
sshd 1447 root 4u IPv6 24618 0t0 TCP *:22 (LISTEN)
redis-ser 1449 redis 5u IPv4 14782 0t0 TCP *:6379 (LISTEN)
master 1828 root 12u IPv4 18076 0t0 TCP 127.0.0.1:25 (LISTEN)
master 1828 root 13u IPv6 18077 0t0 TCP [::1]:25 (LISTEN)
ruby 7514 myuser 7u IPv4 51854 0t0 TCP 127.0.0.1:1234 (LISTEN)
node 7562 myuser 19u IPv4 50542 0t0 TCP *:3500 (LISTEN)
但是,我注意到在 Mac 上运行 nmap 时,我无法连接到端口 1234
nmap -sT -p- 10.0.18.25
Starting Nmap 7.92 ( https://nmap.org ) at 2021-10-13 11:16 CDT
Nmap scan report for iad-3456273abcef.mlp.nq.smb.rcn.net (10.0.18.25)
Host is up (0.10s latency).
Not shown: 65531 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
3306/tcp open mysql
3500/tcp open rtmp-port
6379/tcp open redis
Nmap done: 1 IP address (1 host up) scanned in 1374.16 seconds
当我尝试在我的机器上运行防火墙规则更新时
$ sudo ufw allow 1234
WARN: uid is 0 but '/usr' is owned by 501
Skipping adding existing rule
Skipping adding existing rule (v6)
我仍然无法从本地计算机访问虚拟服务器的 1234 端口。我还需要做什么才能打开虚拟服务器的 1234 端口?
答案1
那一个例子红宝石正在收听端口 1234用于连接仅限 127.0.0.1。因此,除非您让它接受来自主机的连接,否则端口转发不会发生太大变化。