Azure 是否会阻止传入 VM 的端口 25?

Azure 是否会阻止传入 VM 的端口 25?

添加了 443 和 25 以允许 VM 的入站规则 添加了 443 和 25 以允许 VM 的入站规则

iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

在虚拟机上设置监听器

sudo nc -l 25

从外部计算机

telnet myVMip 25

连接超时。

对 443 执行相同程序时,它工作正常。这让我相信端口 25 被 azure 本身阻止了?

答案1

解决此问题的最佳方法是使用带有 tcp 数据包的 traceroute。使用此命令检查数据包被阻止的位置:

traceroute -T -p 25 -n <myVMip>

下一步 - 在虚拟机上运行 tcpdump 并检查传入数据包。tcpdump 捕获数据包防災墙。

tcpdump -ni <iface> 'port 25'

因此,如果您在转储中看到数据包,但没有任何效果,请检查防火墙。默认情况下,iptables 命令仅列出表filter。最好使用该iptables-save -c命令显示带有规则计数器的完整规则集。

然后检查端口是否真的被监听。使用netstat -tlnpss -tlnp 'sport == :25'命令。您应该会看到监听的套接字和您的程序。

如果以上步骤都完成了,但是服务还是没有工作,请运行strace -p <pid>命令检查,服务确实从socket中获取了数据。

相关内容