在阿里云服务器(ECS)上,如果你想限制某个 IP 或 IP 段访问服务器,可以通过以下几种方式来实现:
✅ 一、通过 安全组规则 设置 IP 访问限制
这是最常用也是推荐的方式,适用于公网和内网流量控制。
步骤如下:
- 登录 阿里云控制台
- 进入 云服务器 ECS 控制台
- 找到你的实例 -> 点击“安全组”链接
- 在安全组页面中点击 配置规则
- 切换到 入方向/出方向 规则页签
- 点击 添加安全组规则
示例:禁止某个 IP 访问服务器的 80 端口
- 授权策略:拒绝(Deny)
- 协议类型:HTTP (或自定义 TCP:80)
- 端口范围:80/80
- 源 IP 地址:你要禁止的 IP 或 CIDR 段(如
192.168.1.100/32)
示例:只允许某个 IP 访问 SSH(22端口)
- 授权策略:允许(Allow)
- 协议类型:SSH / 自定义 TCP:22
- 端口范围:22/22
- 源 IP 地址:
1.2.3.4/32 - 其他规则设置为默认拒绝
⚠️ 注意:如果你要限制所有 IP 只允许特定 IP 访问,需要把默认放行规则删除或修改为仅允许指定 IP。
✅ 二、通过服务器系统防火墙(iptables/firewalld)设置
如果想更细粒度地控制流量(比如基于应用层),可以在服务器内部使用系统自带的防火墙工具。
CentOS/RHEL 使用 firewalld:
# 添加富规则,禁止某IP访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
# 重新加载规则
sudo firewall-cmd --reload
Ubuntu 使用 ufw:
sudo ufw deny from 192.168.1.100
sudo ufw reload
使用 iptables:
iptables -A INPUT -s 192.168.1.100 -j DROP
iptables-save > /etc/iptables/rules.v4
✅ 三、通过 Web 服务器配置限制(如 Nginx/Apache)
如果你只想限制某些 IP 访问 Web 页面,可以配置 Web 服务本身。
Nginx 示例:
location / {
deny 192.168.1.100;
allow all;
}
然后重载 Nginx:
sudo nginx -s reload
Apache 示例:
<Directory "/var/www/html">
Require all granted
Require not ip 192.168.1.100
</Directory>
重启 Apache:
sudo systemctl restart apache2
✅ 四、CDN 或 WAF 配合使用(高级用法)
如果你使用了阿里云 CDN 或 Web 应用防火墙(WAF),也可以在这些产品中设置 IP 黑名单/白名单,进行统一管理。
🔒 总结建议:
| 方式 | 优点 | 缺点 |
|---|---|---|
| 安全组 | 简单、高效、集中管理 | 不能做太复杂的规则 |
| 系统防火墙(iptables/firewalld) | 灵活,可做复杂规则 | 需要在每台服务器单独配置 |
| Web 服务器配置 | 针对 HTTP 层精细控制 | 不影响其他服务 |
| CDN/WAF | 统一管理多个站点 | 成本较高 |
如果你告诉我你想限制哪个 IP、哪个端口或服务,我可以帮你写出具体的配置示例。欢迎继续提问!
云知识