使用iptables限制特定IP访问的步骤如下:
首先,你需要通过SSH或其他远程登录方式登录到你的Linux服务器。
在开始修改之前,建议先查看当前的iptables规则,以便了解现有的配置。
sudo iptables -L -n -v
假设你想允许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的访问请求。接下来,拒绝所有其他IP访问该端口:
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
解释:
-A INPUT
:将规则添加到INPUT链。-p tcp
:指定协议为TCP。--dport 80
:指定目标端口为80。-j DROP
:丢弃所有不符合前面规则的请求。iptables规则在系统重启后会丢失,因此需要保存规则。不同的Linux发行版可能有不同的保存方法。
sudo iptables-save > /etc/iptables/rules.v4
sudo service iptables save
或者使用firewall-cmd
(如果使用的是firewalld):
sudo firewall-cmd --runtime-to-permanent
最后,验证规则是否生效:
sudo iptables -L -n -v
你应该能看到你添加的规则,并且确认它们已经生效。
iptables -D
命令删除规则进行测试。通过以上步骤,你可以使用iptables限制特定IP访问你的服务器。