如何通过防火墙规则屏蔽境外IP访问云主机?

HCRM技术_小炮 云主机 2025-08-06 1 0

在云主机上封禁境外IP,可以通过以下两种主要方法实现,推荐使用云服务商的安全组功能(操作简单,不消耗主机资源),也可以使用主机防火墙(如iptables或firewalld)进行精细控制。

云主机怎么封禁境外IP

方法1:使用云服务商的安全组(推荐)

安全组是云平台提供的虚拟防火墙,直接在网络层过滤流量,效率高且不占用主机资源。

操作步骤(以阿里云、腾讯云为例):

1、登录云平台控制台

- 阿里云:进入ECS实例 → 安全组

云主机怎么封禁境外IP

- 腾讯云:进入CVM实例 → 安全组

2、创建/修改安全组规则

放行中国大陆IP:添加一条入站规则,选择协议(如TCP/UDP/ICMP),端口范围(如80,4430/0表示所有端口),源IP填写中国大陆IP段(需自行获取)。

拒绝所有其他IP:安全组默认拒绝未明确允许的流量(白名单机制),无需额外设置。

3、关联安全组到云主机

云主机怎么封禁境外IP

将新规则的安全组绑定到目标云主机。

方法2:使用主机防火墙(iptables/firewalld)

适合需要动态封禁或云平台安全组功能受限的场景。

步骤1:安装IP地理位置数据库(如ipset)

安装ipset和工具
sudo apt-get install ipset -y  # Debian/Ubuntu
sudo yum install ipset -y     # CentOS

**步骤2:下载并导入中国大陆IP段

下载中国大陆IP列表(来源:APNIC或权威机构)
wget -O cn.zone https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt
创建ipset集合
sudo ipset create china hash:net
将IP段导入集合
while read addr; do sudo ipset add china $addr; done < cn.zone

**步骤3:配置iptables规则

允许中国大陆IP访问所有端口
sudo iptables -A INPUT -m set --match-set china src -j ACCEPT
拒绝境外IP(非中国大陆IP)
sudo iptables -A INPUT -j DROP
可选:放行SSH等管理端口(避免误封)
sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT

**步骤4:保存规则(重启后生效)

Debian/Ubuntu
sudo apt-get install iptables-persistent -y
sudo netfilter-persistent save
CentOS 7+
sudo yum install iptables-services -y
sudo systemctl enable iptables
sudo service iptables save

**关键注意事项

1、避免封禁自己

- 操作前确保放行你的IP云平台管理IP(如AWS的169.254.0.0/16)。

- 测试时通过控制台VNC登录,避免SSH被阻断。

2、IP列表更新

中国大陆IP段会动态变化,建议每月更新一次:

   wget -O cn.zone https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt
   sudo ipset flush china  # 清空旧集合
   while read addr; do sudo ipset add china $addr; done < cn.zone

3、IPv6处理

若主机启用IPv6,需单独封禁境外IPv6(方法类似,使用ip6tables)。

**常见问题解决

误封国内IP:检查IP列表是否完整(推荐使用[17mon/china_ip_list](https://github.com/17mon/china_ip_list)项目)。

性能问题:ipset基于哈希表,数千条规则对性能影响极小。

云平台差异

- 阿里云:支持直接导入IP地址组,无需手动维护。

- AWS:使用Network ACLs或第三方工具(如AWS WAF)。

通过上述方法,可有效封禁境外IP访问,提升云主机安全性,优先使用云平台安全组,复杂场景配合主机防火墙实现精细控制。

文章摘自:https://idc.huochengrm.cn/zj/12466.html

评论