Linux如何限制某个IP访问服务

使用iptables或firewalld可限制IP访问,如iptables -A INPUT -s 192.168.1.100 -p tcp –dport 22 -j DROP禁止SSH访问,firewalld通过rich rule拒绝指定IP,也可通过/etc/hosts.deny限制服务级访问。

Linux如何限制某个IP访问服务

在Linux系统中,可以通过防火墙工具来限制某个IP访问特定服务。最常用的方式是使用 iptablesfirewalld。以下是具体操作方法。

使用 iptables 限制IP访问

iptables 是 Linux 内核中强大的网络包过滤工具,可以直接控制进出系统的网络流量。

假设要禁止 IP 地址 192.168.1.100 访问本机的 SSH 服务(端口 22),可以执行以下命令:

  • 禁止特定IP访问指定端口
    iptables -A INPUT -s 192.168.1.100 -p tcp –dport 22 -j DROP
  • 允许特定IP访问(白名单)
    iptables -A INPUT -s 192.168.1.100 -p tcp –dport 22 -j ACCEPT
  • 查看当前规则
    iptables -L -n -v
  • 删除规则(例如删除INPUT链第3条规则)
    iptables -D INPUT 3

注意:DROP 表示直接丢弃数据包,对方无响应;REJECT 会返回拒绝信息。

Linux如何限制某个IP访问服务

使用 firewalld 限制IP(适用于CentOS/RHEL/Fedora)

firewalld 是动态防火墙管理工具,支持区域(zone)概念,便于管理不同来源的访问策略。

Linux如何限制某个IP访问服务

集简云

软件集成平台,快速建立企业自动化与智能化

Linux如何限制某个IP访问服务21

查看详情 Linux如何限制某个IP访问服务

将特定IP加入受信任区域之外,或直接拒绝其访问:

  • 拒绝某个IP访问所有服务
    firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.100″ reject’
  • 拒绝某个IP访问特定端口(如22)
    firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.100″ port protocol=”tcp” port=”22″ reject’
  • 重新加载配置
    firewall-cmd –reload
  • 查看已添加的规则
    firewall-cmd –list-all

Linux如何限制某个IP访问服务

通过服务自身配置限制(如SSH)

某些服务支持在配置文件中设置访问控制,例如SSH服务可通过 /etc/hosts.deny/etc/hosts.allow 控制。

  • 编辑文件 /etc/hosts.deny,添加:
    sshd: 192.168.1.100
  • 若要允许某些IP,可在 /etc/hosts.allow 添加:
    sshd: 192.168.1.50

注意:/etc/hosts.allow 优先级高于 .deny 文件。

基本上就这些常用方法。选择哪种方式取决于你使用的系统和防火墙工具。iptables 更底层灵活,firewalld 更适合动态管理,服务级限制则适用于特定场景。关键是确保规则生效并测试效果,避免误封自己。不复杂但容易忽略。

linux centos 防火墙 工具 linux系统 input linux centos ssh

上一篇
下一篇