在腾讯云 CVM(云服务器)上限制流量,核心思路是“网络层访问控制 + 系统内防火墙策略”相结合。腾讯云提供了两种主要方式:通过安全组(Security Group)进行粗粒度的网络边界控制,以及通过云主机内部操作系统进行细粒度的应用层或 IP/端口级控制。
以下是具体的实施步骤和方案:
方案一:使用安全组(推荐首选)
安全组是腾讯云提供的虚拟防火墙,位于实例的入口和出口处。这是最基础、最有效且对性能影响最小的方式。它主要用于限制特定 IP、端口和协议。
1. 限制入站流量(Inbound)
- 操作路径:登录腾讯云控制台 -> 点击左侧菜单“网络与安全” -> “安全组”。
- 操作步骤:
- 找到绑定该 CVM 实例的安全组,点击“修改规则”。
- 切换到入方向标签页。
- 添加或编辑规则:
- 授权对象:设置为
0.0.0.0/0(允许所有)或指定特定 IP(如仅允许公司 IP)。 - 协议类型:选择 TCP/UDP/ICMP 等。
- 端口范围:填写需要开放的端口(如 80, 443),若要禁止某服务,则不创建该端口的规则。
- 动作:确保默认为“拒绝”(通常默认规则是拒绝所有,只放行明确配置的规则)。
- 授权对象:设置为
- 保存后,未配置的端口将自动被拦截。
2. 限制出站流量(Outbound)
- 注意:早期版本安全组默认出站全开,但新版控制台通常支持出站规则配置。
- 操作步骤:
- 在同一安全组中,切换到出方向标签页。
- 点击“新建规则”。
- 授权对象:设置目标地址(例如仅允许访问腾讯云的特定 API 网关 IP,或禁止访问公网
0.0.0.0/0)。 - 协议与端口:根据需求设定。例如,若只想让服务器访问网络的 80/443 端口,则在此处仅放行 TCP 80 和 443,其他端口默认会被阻断。
- 保存生效。
提示:如果安全组规则过于复杂,建议优先在入方向做严格限制,因为大多数攻击来自外部。出站限制通常用于防止数据泄露或僵尸网络行为。
方案二:使用云主机内部防火墙(进阶控制)
如果需要更精细的控制(例如:限制某个 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 防火墙 -> 高级设置。
- 出站规则:
- 点击“出站规则” -> “新建规则”。
- 选择“端口”或“程序”。
- 选择“阻止连接”。
- 设置作用域(远程 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 | 普通防火墙无法抵御大规模流量攻击。 |
最佳实践步骤:
- 第一步:登录腾讯云控制台,配置安全组。遵循“最小权限原则”,默认拒绝所有,只开放业务必须的端口(如 80, 443, 22)。
- 第二步:登录服务器,配置系统防火墙(如 UFW 或 iptables),作为第二道防线,进一步细化规则(如限制同一 IP 的连接数)。
- 第三步:监控流量。使用
iftop(Linux) 或任务管理器 (Windows) 观察流量情况,动态调整策略。
通过以上组合拳,您可以有效地限制 CVM 的入站和出站流量,保障服务器的安全性与稳定性。
PHPWP博客