腾讯云CVM实例怎么限制出站和入站流量?

在腾讯云 CVM(云服务器)上限制流量,核心思路是“网络层访问控制 + 系统内防火墙策略”相结合。腾讯云提供了两种主要方式:通过安全组(Security Group)进行粗粒度的网络边界控制,以及通过云主机内部操作系统进行细粒度的应用层或 IP/端口级控制。

以下是具体的实施步骤和方案:

方案一:使用安全组(推荐首选)

安全组是腾讯云提供的虚拟防火墙,位于实例的入口和出口处。这是最基础、最有效且对性能影响最小的方式。它主要用于限制特定 IP、端口和协议。

1. 限制入站流量(Inbound)

  • 操作路径:登录腾讯云控制台 -> 点击左侧菜单“网络与安全” -> “安全组”。
  • 操作步骤:
    1. 找到绑定该 CVM 实例的安全组,点击“修改规则”。
    2. 切换到入方向标签页。
    3. 添加或编辑规则:
      • 授权对象:设置为 0.0.0.0/0(允许所有)或指定特定 IP(如仅允许公司 IP)。
      • 协议类型:选择 TCP/UDP/ICMP 等。
      • 端口范围:填写需要开放的端口(如 80, 443),若要禁止某服务,则不创建该端口的规则。
      • 动作:确保默认为“拒绝”(通常默认规则是拒绝所有,只放行明确配置的规则)。
    4. 保存后,未配置的端口将自动被拦截。

2. 限制出站流量(Outbound)

  • 注意:早期版本安全组默认出站全开,但新版控制台通常支持出站规则配置。
  • 操作步骤:
    1. 在同一安全组中,切换到出方向标签页。
    2. 点击“新建规则”。
    3. 授权对象:设置目标地址(例如仅允许访问腾讯云的特定 API 网关 IP,或禁止访问公网 0.0.0.0/0)。
    4. 协议与端口:根据需求设定。例如,若只想让服务器访问网络的 80/443 端口,则在此处仅放行 TCP 80 和 443,其他端口默认会被阻断。
    5. 保存生效。

提示:如果安全组规则过于复杂,建议优先在入方向做严格限制,因为大多数攻击来自外部。出站限制通常用于防止数据泄露或僵尸网络行为。


方案二:使用云主机内部防火墙(进阶控制)

如果需要更精细的控制(例如:限制某个 IP 只能访问特定端口,或者限制带宽速率),需要在操作系统内部配置防火墙工具。

Linux 系统 (以 Ubuntu/CentOS 为例)

1. 使用 UFW (Uncomplicated Firewall) – 简单直观

# 安装 (Ubuntu)
sudo apt install ufw

# 查看状态
sudo ufw status

# 限制入站:仅允许 SSH (22) 和 HTTP (80),拒绝其他所有入站
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw default deny incoming

# 限制出站:仅允许访问 DNS (53) 和 HTTP/HTTPS,拒绝其他所有出站
sudo ufw default deny outgoing
sudo ufw allow out 53/udp
sudo ufw allow out 53/tcp
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp

# 启用防火墙
sudo ufw enable

2. 使用 iptables/nftables – 灵活强大
适用于需要基于源 IP、目标 IP 或连接数进行复杂控制的场景。

  • 限制特定 IP 的出站:
    # 拒绝 IP 1.2.3.4 访问互联网 (示例)
    sudo iptables -A OUTPUT -d 1.2.3.4 -j DROP
  • 限制带宽速率 (配合 tc 或 iptables limit):
    虽然 iptables 可以做简单的限流(limit 模块),但更推荐使用 tc (Traffic Control) 进行精确的 QoS 限速。

    # 示例:限制 eth0 接口出站总速率为 10Mbps
    sudo tc qdisc add dev eth0 root handle 1: htb default 30
    sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit

Windows 系统

1. 使用 Windows 防火墙

  • 操作路径:控制面板 -> Windows Defender 防火墙 -> 高级设置。
  • 出站规则:
    1. 点击“出站规则” -> “新建规则”。
    2. 选择“端口”或“程序”。
    3. 选择“阻止连接”。
    4. 设置作用域(远程 IP 地址),例如仅允许访问特定网段,其余全部阻止。
  • 入站规则:同理,只开放必要的端口(如 RDP 3389, Web 80)。

方案三:使用腾讯云 CLB 或 CDN(架构级限制)

如果你的业务涉及负载均衡或静态资源提速,可以在架构层面限制:

  • CLB (负载均衡):在监听器级别配置访问控制列表(ACL),直接丢弃非法请求,减轻后端 CVM 压力。
  • CDN / DDoS 高防:对于大流量攻击,CVM 自身难以承受,需开启腾讯云的高防 IP 或 WAF(Web 应用防火墙)来清洗流量。

总结与建议

需求场景 推荐方案 理由
基础访问控制 (封禁端口/IP) 安全组 无需登录服务器,生效快,不影响系统性能,官方推荐。
精细化控制 (按 IP 限速、复杂逻辑) 系统防火墙 (iptables/UFW) 灵活性极高,可针对具体进程或 IP 组合进行控制。
防止带宽跑满 系统限速 (tc) + 安全组 安全组无法限制带宽总量,需配合系统命令或购买更高带宽包。
抗 DDoS 攻击 高防 IP / WAF 普通防火墙无法抵御大规模流量攻击。

最佳实践步骤:

  1. 第一步:登录腾讯云控制台,配置安全组。遵循“最小权限原则”,默认拒绝所有,只开放业务必须的端口(如 80, 443, 22)。
  2. 第二步:登录服务器,配置系统防火墙(如 UFW 或 iptables),作为第二道防线,进一步细化规则(如限制同一 IP 的连接数)。
  3. 第三步:监控流量。使用 iftop (Linux) 或任务管理器 (Windows) 观察流量情况,动态调整策略。

通过以上组合拳,您可以有效地限制 CVM 的入站和出站流量,保障服务器的安全性与稳定性。