Linux如何限制指定IP的访问

发布时间 - 2025-09-02 00:00:00    点击率:
答案:Linux中限制IP访问主要通过iptables、firewalld和tcpwrappers实现;iptables使用DROP或REJECT规则禁止或允许IP访问,需注意规则顺序并保存配置;firewalld利用rich规则动态控制IP和服务访问,需重载生效;tcpwrappers通过/etc/hosts.allow和/etc/hosts.deny文件限制支持的服务;选择方法应根据系统环境和服务类型决定。

在Linux系统中限制指定IP的访问,主要通过防火墙工具实现,最常用的是iptablesfirewalld。下面介绍几种常用方法,帮助你快速配置IP访问限制。

使用 iptables 限制IP访问

iptables 是Linux内核自带的防火墙工具,功能强大且广泛支持。

禁止某个IP访问本机:

iptables -A INPUT -s 192.168.1.100 -j DROP

这条命令会阻止来自 192.168.1.100 的所有连接。

允许某个IP访问,拒绝其他所有:

iptables -A INPUT -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -j DROP

注意规则顺序:允许的规则必须在拒绝规则之前。

限制特定端口的访问:

iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP

这条命令阻止指定IP访问SSH服务(端口22)。

配置完成后,保存规则防止重启失效:

service iptables save

(部分系统需安装 iptables-services 包)

使用 firewalld 限制IP访问(CentOS/RHEL/Fedora)

firewalld 是现代Red Hat系列默认的防火墙管理工具,支持动态配置。

拒绝某个IP:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'

使用 reject 会返回拒绝信息,也可用 drop 表示静默丢包。

仅允许某个IP访问特定服务:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
firewall-cmd --permanent --remove-service=ssh

先移除全局SSH服务,再为特定IP单独开放。

重新加载配置:

firewall-cmd --reload

使用 /etc/hosts.deny 和 /etc/hosts.allow(仅适用于支持tcpwrappers的服务)

某些服务(如sshd、vsftpd)支持tcpwrappers机制,可通过配置文件控制访问。

编辑 /etc/hosts.deny 文件,禁止某个IP:

sshd: 192.168.1.100

编辑 /etc/hosts.allow 文件,白名单优先:

sshd: 192.168.1.50

allow 文件中的规则优先于 deny。

验证与管理

查看当前iptables规则:

iptables -L -n -v

查看firewalld富规则:

firewall-cmd --list-rich-rules

测试限制是否生效,可从目标IP使用ping、telnet或ssh尝试连接。

基本上就这些。选择哪种方式取决于你的系统环境和服务类型。iptables最通用,firewalld更适合现代Red Hat系,tcpwrappers适合特定服务。配置时注意规则顺序和保存,避免被锁在服务器外。


# linux  # centos  # 工具  # linux系统  # red  # input  # ssh  # 这条  # 和服务  # 的是  # 适用于  # 几种  # 自带  # 可通过  # 哪种  # 重启  # 本机 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 浅谈redis在项目中的应用  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何处理异常和错误?(Handler示例)  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Python正则表达式进阶教程_复杂匹配与分组替换解析  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  微信小程序 HTTPS报错整理常见问题及解决方案  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  中国移动官方网站首页入口 中国移动官网网页登录  如何在阿里云完成域名注册与建站?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何在景安云服务器上绑定域名并配置虚拟主机?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Python制作简易注册登录系统  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  JavaScript如何实现错误处理_try...catch如何捕获异常?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在云虚拟主机上快速搭建个人网站?  如何在云服务器上快速搭建个人网站?  Laravel API资源类怎么用_Laravel API Resource数据转换  香港服务器部署网站为何提示未备案?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  在线制作视频网站免费,都有哪些好的动漫网站?  长沙做网站要多少钱,长沙国安网络怎么样?  网站页面设计需要考虑到这些问题  如何制作一个表白网站视频,关于勇敢表白的小标题?  JavaScript如何实现音频处理_Web Audio API如何工作?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  青岛网站建设如何选择本地服务器?  智能起名网站制作软件有哪些,制作logo的软件?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何快速查询网址的建站时间与历史轨迹?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  如何用搬瓦工VPS快速搭建个人网站?  Laravel如何发送系统通知?(Notification渠道示例)  JavaScript Ajax实现异步通信  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  网站制作壁纸教程视频,电脑壁纸网站?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  网站制作企业,网站的banner和导航栏是指什么?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】