特殊情况下,需要只允许指定的IP才能访问服务器的某个指定端口,怎么做呢?通过linux的自带防火墙iptables就可以做到。直接上代码


iptables -I INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT //允许IP1.2.3.4连接80端口
这样我们可以很好的保护80端口


同样,我们可以限制22端口的指定IP才能访问,只需把上面的80修改为22

当然,我们还可以修改默认的sshd服务的端口...不罗嗦

规则顺序:-I 选项表示将规则插入到链的最前面。如果您希望将规则添加到链的末尾,可以使用 -A 选项。

以下为样例:

# 清空现有的规则
iptables -F
# 允许本机的回环接口流量
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立和相关的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许本机的 22, 80, 443, 800 端口
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,800 -j ACCEPT
# 允许 192.168.31.2 访问 800 端口
iptables -A INPUT -p tcp -s 192.168.1.10 --dport 800 -j ACCEPT
# 拒绝其他所有输入流量
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP