在腾讯云CVM(Cloud Virtual Machine)批量创建实例时,网络设置是影响实例连通性、安全性和后续运维的关键环节。以下是需要重点关注的网络设置要点及最佳实践:
✅ 一、VPC(虚拟私有网络)相关设置
-
必须指定已有VPC
- 批量创建不支持自动新建VPC,需提前规划并选择已存在的VPC(建议使用生产环境专用VPC,避免与默认VPC混用)。
- 确认VPC的IPv4网段(如
10.0.0.0/16)不与其他VPC或本地IDC网段冲突(尤其在使用对等连接、X_X或云联网CCN时)。
-
子网(Subnet)选择
- 必须指定同一可用区(AZ)内的子网(批量创建暂不支持跨AZ部署在同一请求中);若需多AZ高可用,需分批次创建。
- 子网需有足够IP地址余量(预留至少20%余量,避免因弹性网卡、容器Pod、负载均衡健康检查等占用导致扩容失败)。
- 建议按业务分层划分子网(如:web层、app层、db层),并启用子网路由表、ACL、DHCP选项集等精细化控制。
✅ 二、网络接口与IP配置
3. 主网卡(Primary ENI)设置
- 内网IP分配方式:
- ✅ 推荐「自动分配」(由子网DHCP分配)→ 简单可靠,适合无状态服务;
- ⚠️ 若需固定内网IP(如数据库主从、License绑定),选择「指定内网IP」→ 务必提前校验IP未被占用(可通过API
DescribeInstances或控制台“子网IP使用情况”查看),否则批量创建会部分失败。
- 公网IP(EIP)配置:
- 默认不分配公网IP(推荐);如需访问公网,强烈建议使用NAT网关 + 公网子网方案,而非为每台CVM分配独立EIP(成本高、管理难、安全风险大)。
- 若确需EIP(如跳板机、对外服务节点),可勾选「分配公网IP」,但注意:
• EIP配额限制(默认5个/账户,需提前申请提升);
• 按带宽计费时,带宽值对所有实例统一生效,不可差异化配置。
- 弹性公网IP(EIP)绑定模式
- 批量创建时若分配EIP,EIP将直接绑定到主网卡,无法在创建时绑定至辅助网卡。如需多IP架构(如SSL多域名),需创建后通过API/CLI手动绑定。
✅ 三、安全组(Security Group)
5. 安全组是必选且关键项
- 批量创建必须关联至少一个已存在的安全组(不支持创建新安全组)。
- ✅ 最佳实践:
- 提前创建分层安全组(如
sg-web-public、sg-app-internal、sg-db-restricted); - 避免使用“全放开”规则(如
0.0.0.0/0+ALL),遵循最小权限原则; - 生产环境禁止开放
22/3389至公网,应通过堡垒机(Bastion Host)+ SSH ProxyJump / RDP网关访问; - 安全组规则修改实时生效,但批量创建时所选安全组必须已存在且规则完备。
- 提前创建分层安全组(如
✅ 四、高级网络能力(按需启用)
6. 弹性网卡(ENI)
- 批量创建仅支持主网卡,不支持在创建时添加辅助弹性网卡;
- 如需多网卡(如双栈网络、隔离流量),需创建后调用
AttachNetworkInterfaceAPI 添加。
-
IPv6支持
- 需确保VPC和子网已开启IPv6(创建VPC时勾选,子网需启用IPv6 CIDR);
- 批量创建时可勾选「分配IPv6地址」→ 自动分配一个IPv6地址(需安全组放行对应端口)。
-
DNS与DHCP选项集
- 若VPC已绑定自定义DHCP选项集(如指定内网DNS服务器
10.0.0.2),批量创建的CVM将自动继承,确保域名解析一致性(尤其重要于K8s集群、Consul等场景)。
- 若VPC已绑定自定义DHCP选项集(如指定内网DNS服务器
✅ 五、批量创建实操注意事项
- 📌 参数一致性校验:同一批量请求中,所有实例必须使用相同VPC、相同子网、相同安全组、相同公网IP策略(即不能一部份有EIP、一部分无)。
- 📌 配额检查前置:
- CVM实例数配额(地域级)、VPC内子网IP数、安全组规则数(单安全组最多100条入站+100条出站)、EIP数量等,均需提前通过 配额中心 核查。
- 📌 自动化建议:
- 使用 Terraform(tencentcloud_instance) 或 Ansible(tencent.cloud.cvm_instance) 实现模板化批量部署,便于版本控制与网络配置复用;
- 通过 CVM API
RunInstances的Placement.Zone和VpcAttributes参数精确控制网络拓扑。
✅ 六、验证与排错建议
-
创建后立即执行:
# 检查实例网络状态 tccli cvm DescribeInstances --Filters 'Name=instance-id,Values=ins-xxx' --Output json | jq '.InstanceSet[].VpcAttributes' # 查看子网IP使用情况(确认未耗尽) tccli vpc DescribeSubnets --SubnetIds subnet-xxx -
若实例无法互通:优先排查「安全组入站规则」→「子网ACL」→「VPC路由表」→「实例操作系统防火墙(如iptables/firewalld)」四级链路。
💡 总结口诀:
VPC先建好,子网要够用;
安全组必选,规则要最小;
内网IP慎指定,EIP少分配;
多AZ分批建,配额早报备;
自动化部署,网络才稳准。
如需具体配置示例(如Terraform代码片段、安全组规则模板或跨VPC通信方案),我可为您进一步提供。
PHPWP博客