使用腾讯云时,多台服务器之间的内网互通如何配置?

在腾讯云中,多台服务器(CVM 实例)实现内网互通是默认且自动支持的,但需满足一定前提条件并进行合理配置。以下是详细、准确、可操作的配置指南:

核心原则:同一私有网络(VPC) + 同一可用区(或跨可用区) + 正确安全组/网络ACL策略


一、前提条件(必须满足)

条件 说明
同属一个 VPC(私有网络) 不同 VPC 默认不互通(即使地域相同),需通过对等连接云联网(CCN)打通。
子网(Subnet)路由可达 同一 VPC 内子网间默认路由互通(系统路由表已包含 10.0.0.0/8 或自定义网段的本地路由 Destination: 10.0.1.0/24, Target: Local)。无需手动添加。
实例处于运行中状态 关机状态无法响应内网请求。
⚠️ 跨可用区(AZ)也支持内网互通 腾讯云同一地域(Region)下不同可用区之间通过高速内网互联(延迟低、带宽高),无需额外配置路由,但需注意:安全组和网络 ACL 需放行。

二、关键配置步骤(按优先级排序)

🔹 1. 检查并确保所有 CVM 在同一 VPC 下

  • 控制台路径:云服务器 CVM → 选择实例 → 查看「私有网络」列。
  • 若不在同一 VPC:
    • 推荐方案:重新创建实例时选择目标 VPC 和子网;
    • ❌ 不建议:迁移已有实例(需关机+更换子网,受限且复杂);
    • 跨 VPC 互通:使用 VPC 对等连接(Peering Connection)(同地域)或 云联网 CCN(跨地域/多 VPC)。

🔹 2. 配置安全组(最重要!内网不通 90% 是安全组问题)

  • 安全组是实例级别的虚拟防火墙,控制进出流量。
  • 正确做法(推荐)
    • 创建一个专用内网互通安全组(如 sg-intranet-allow);
    • 添加入站规则(Inbound),允许来自同一 VPC 内网网段的流量:
      协议端口:全部 / 或指定(如 TCP:22,3306,8080)
      源 IP:10.0.0.0/8(若 VPC 网段为 10.x.x.x)  
         或更精确:10.0.1.0/24(对应子网网段)
      描述:允许同VPC内网访问
    • 将该安全组绑定到所有需要互通的 CVM 实例(可多选批量绑定)。
  • ❌ 常见错误:
    • 安全组只放行了 0.0.0.0/0(公网)但未放行内网网段;
    • 使用默认安全组(通常仅开放 22/3389,且源为 0.0.0.0/0,但内网通信仍需显式放行内网 CIDR);
    • 多个安全组叠加导致策略冲突(建议精简,1~2 个即可)。

💡 提示:腾讯云安全组默认拒绝所有入站流量,必须显式添加“允许”规则。

🔹 3. (可选)检查网络 ACL(子网级别防火墙)

  • 网络 ACL 是子网级别的无状态防火墙,默认规则允许全部出入站。
  • ✅ 仅当您主动修改过网络 ACL 时才需检查:
    • 进入 VPC 控制台 → 私有网络 → 选择 VPC → 点击「子网」→ 查看对应子网的「网络 ACL」;
    • 确保入站规则(Inbound Rules)包含允许内网 CIDR 的条目(如 10.0.0.0/8 → ALLOW);
  • ⚠️ 注意:网络 ACL 规则按序号匹配,拒绝规则(DENY)优先于允许规则

🔹 4. 操作系统层面检查(常被忽略!)

即使云平台配置正确,OS 层防火墙也可能拦截:

  • Linux(如 CentOS/Ubuntu)

    # 检查 firewalld(CentOS 7+/Rocky)
    sudo firewall-cmd --list-all          # 查看当前区域规则
    sudo firewall-cmd --permanent --add-source=10.0.0.0/8
    sudo firewall-cmd --permanent --add-port=22/tcp
    sudo firewall-cmd --reload
    
    # 或临时关闭测试(生产环境不推荐)
    sudo systemctl stop firewalld
    
    # Ubuntu(ufw)
    sudo ufw status verbose
    sudo ufw allow from 10.0.0.0/8
  • Windows Server
    • 打开「高级安全 Windows 防火墙」→ 入站规则 → 确保「文件和打印机共享(回显请求 – ICMPv4-In)」等启用;
    • 或新建规则:允许任意 IP 的 ICMP/TCP 端口,作用域设为「本地子网」。

🔹 5. 验证连通性(逐层排查)

# 1. 查看本机内网 IP(非公网IP!)
ip a | grep "inet " | grep -v "127.0.0.1"

# 2. ping 对方内网 IP(确认基础连通)
ping 10.0.1.10

# 3. telnet/nc 测试端口(如 SSH 22、MySQL 3306)
telnet 10.0.1.10 22
nc -zv 10.0.1.10 3306

# 4. 检查路由表(应含 Local 路由)
ip route show | grep "dev eth0"  # 应看到类似:10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.5

三、典型场景与解决方案

场景 原因 解决方案
✅ 同 VPC,但 ping 不通 安全组未放行 ICMP;OS 防火墙拦截 添加安全组 ICMP 规则 + 关闭 OS 防火墙测试
✅ 能 ping 通,但 telnet 端口失败 目标服务未监听内网地址;安全组/OS 防火墙屏蔽端口 netstat -tuln | grep :端口;检查服务 bind 地址(如 MySQL bind-address = 0.0.0.010.0.1.0/24
❌ 跨 VPC 无法互通 VPC 默认隔离 配置 VPC 对等连接 并更新双方路由表
❌ 同 VPC 但跨地域(如广州 & 北京) 跨地域 VPC 物理隔离 必须用 云联网 CCN + 提速带宽包

✅ 最佳实践总结

  1. 统一规划 VPC 网段:如 10.0.0.0/16,子网按业务划分(10.0.1.0/24, 10.0.2.0/24…);
  2. 使用专用安全组管理内网访问,避免混用公网规则;
  3. 禁用操作系统默认防火墙(或配置白名单),或使用腾讯云「安全组+OS防火墙」双保险;
  4. 跨可用区部署提升容灾能力:同一 VPC 内跨 AZ 互通零配置,且 SLA 更高;
  5. 开启 VPC 流日志(可选):用于深度排查丢包原因(需额外计费)。

如仍有问题,请提供:

  • 两台 CVM 的 内网 IP 和所在 VPC ID / 子网 ID(可在控制台查看);
  • 安全组的 入站规则截图(隐藏敏感信息);
  • pingtelnet 的具体报错;
    我可进一步帮您定位。

需要我为你生成一份 安全组配置 JSON 模板自动化 Shell 检查脚本 吗?😊