我正在尝试在 Azure 上使用 ubuntu linux vm,需要在入站时打开端口 9001。但无法通过 22 以外的其他端口从外部访问该 vm。
我已经在 Linux VM 中启用了防火墙,并打开了我需要的那些端口:
sudo ufw status
Status: active
To Action From
-- ------ ----
9001 ALLOW Anywhere
22 ALLOW Anywhere
9001 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
我在 Azure 中添加了一条入站规则(与 Azure 创建标准 ssh 入站规则以控制虚拟机的位置相同)
Priority:340
Name:Port_9001
Port:9001
Protocol:TCP
Source:Any
Destination:Any
action:allow
当我尝试 telnet 到 9001 时,没有连接。但 telnet 到 ssh 端口 22 可以工作。
运行此程序表明 Linux 也监听这些端口。
ss -lntu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 10.0.0.4%eth0:68 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:27018 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:8767 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:9001 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 [::]:*
我还使用 Azure 网络工具“验证 IP 流”进行了测试
Protocol:TCP
Direction:Inbound
local ip: 10.0.0.4
port: 9001
Remote ip: ****my home pc wan ip***
remote port: 9001
Result: access allowed
security rule: Port_9001