You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Linux VM端口25无法从本地Windows物理服务器访问求助

排查Azure Linux VM SMTP端口25无法连接的问题

遇到这种情况确实闹心——你已经配置了NSG入站规则、开放了本地Windows服务器的出站25端口,在线工具也显示端口开放,但就是连不上。咱们从几个容易被忽略的角度一步步排查:

1. 先查Azure平台层面的端口25限制

Azure对大部分新订阅默认会限制端口25的出站流量,哪怕你NSG开了规则,平台级的限制依然会生效。另外部分订阅类型(比如免费试用订阅)或区域,可能还有额外的入站限制。

  • 你可以登录Azure门户,找到对应VM的「网络」面板,查看是否有端口25的限制提示;
  • 也可以通过Azure CLI确认订阅的端口限制状态(如果熟悉命令行的话):
    az account show --query "id" | xargs az policy assignment list --query "[?contains(displayName, 'Port 25')]"
    

如果确实有平台限制,需要提交Azure支持请求申请解除。

2. 验证Linux VM内部的防火墙与服务监听状态

NSG放行不代表VM内部也放行,这是最常见的“漏项”:

  • 检查本地防火墙:如果用的是firewalld,运行sudo firewall-cmd --list-ports看看25/tcp是否在列表里;如果是iptables,用sudo iptables -L INPUT -n | grep 25确认有ACCEPT规则。没有的话,添加规则并重启防火墙:
    # firewalld示例
    sudo firewall-cmd --add-port=25/tcp --permanent
    sudo firewall-cmd --reload
    
  • 确认SMTP服务监听范围:运行ss -tulpn | grep :25,如果输出里的监听地址是127.0.0.1:25,说明服务只绑定了本地回环,外部根本连不上。需要修改SMTP服务(比如postfix、sendmail)的配置文件,让它监听0.0.0.0或VM的私网/公网IP,然后重启服务。

3. 排查本地Windows物理机的网络限制

你说已经开放了出站25,但再仔细核对下细节:

  • Windows防火墙规则:打开防火墙高级设置,找到你创建的出站规则,检查「远程IP地址」是否设为「任何IP地址」——如果只加了VM的IP,可能因为规则优先级或配置问题没生效;
  • 本地ISP限制:很多家用或办公ISP会默认封锁端口25的出站流量,防止垃圾邮件。你可以先测试连接其他公共SMTP服务器的25端口(比如用PowerShell运行Test-NetConnection smtp.example.com -Port 25),如果连其他服务器也失败,那大概率是ISP的问题,需要联系ISP解除限制。

4. 用抓包+本地测试确认网络路径

在线端口检测工具的结果可能受检测节点网络影响,不如本地抓包准确:

  • 在Linux VM上启动抓包:sudo tcpdump -i any port 25
  • 同时在Windows物理机上用PowerShell测试:Test-NetConnection <VM公网IP> -Port 25 或者用telnet命令
    • 如果VM上的tcpdump看不到来自Windows物理机IP的数据包:说明网络路径有问题(Azure平台限制、ISP拦截、路由故障);
    • 如果能看到数据包但没有响应:说明VM内部的防火墙或SMTP服务没处理请求。

5. 核对NSG规则的优先级

NSG规则是按优先级排序的(数值越小优先级越高),如果你的允许25端口规则优先级比某个拒绝所有入站的规则低,那它根本不会生效。登录Azure门户,进入对应NSG的「入站安全规则」面板,确认允许25端口的规则优先级高于所有拒绝类规则。

内容的提问来源于stack exchange,提问作者Noam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:03:06