温馨提示×

如何用iptables限制特定IP访问

小樊
52
2025-08-31 05:48:59
栏目: 编程语言

使用iptables限制特定IP访问的步骤如下:

1. 登录到服务器

首先,你需要通过SSH或其他远程登录方式登录到你的Linux服务器。

2. 查看当前的iptables规则

在开始修改之前,建议先查看当前的iptables规则,以便了解现有的配置。

sudo iptables -L -n -v 

3. 允许特定IP访问

假设你想允许IP地址为192.168.1.100的设备访问你的服务器的某个端口(例如80端口),可以使用以下命令:

sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.100 -j ACCEPT 

解释:

  • -A INPUT:将规则添加到INPUT链。
  • -p tcp:指定协议为TCP。
  • --dport 80:指定目标端口为80。
  • -s 192.168.1.100:指定源IP地址为192.168.1.100。
  • -j ACCEPT:接受该IP的访问请求。

4. 拒绝其他所有IP访问

接下来,拒绝所有其他IP访问该端口:

sudo iptables -A INPUT -p tcp --dport 80 -j DROP 

解释:

  • -A INPUT:将规则添加到INPUT链。
  • -p tcp:指定协议为TCP。
  • --dport 80:指定目标端口为80。
  • -j DROP:丢弃所有不符合前面规则的请求。

5. 保存iptables规则

iptables规则在系统重启后会丢失,因此需要保存规则。不同的Linux发行版可能有不同的保存方法。

在Debian/Ubuntu上:

sudo iptables-save > /etc/iptables/rules.v4 

在CentOS/RHEL上:

sudo service iptables save 

或者使用firewall-cmd(如果使用的是firewalld):

sudo firewall-cmd --runtime-to-permanent 

6. 验证规则

最后,验证规则是否生效:

sudo iptables -L -n -v 

你应该能看到你添加的规则,并且确认它们已经生效。

注意事项

  • 修改iptables规则时要小心,错误的规则可能导致服务器无法访问。
  • 如果你不确定某些规则的作用,可以先使用iptables -D命令删除规则进行测试。
  • 定期备份iptables规则,以便在出现问题时可以恢复。

通过以上步骤,你可以使用iptables限制特定IP访问你的服务器。

0