前言

在访问国外网站时,F12 看 console,下面两种错误很常见:

(1),Failed to load resource: net::ERR_CONNECTION_REFUSED
(2),Failed to load resource: net::ERR_CONNECTION_TIMEOUT

不考虑网络状况的情况下,一般是不同的 iptables 策略导致的。
本文简单分析不同 iptables 策略下不同的现象。

一,nc 监听端口

Linux 服务器配置防火墙策略时,对一些不希望对外开放的端口,一般会用 iptables 过滤掉。
例如服务器上使用 nc 命令监听如下端口(选择一个未使用的 5568 端口作为对比):

nc -l 4444
nc -l 5555
nc -l 5566
# 未使用的 5568 端口作为参照

然后用 iptables 过滤掉这些端口:

iptables -A INPUT -p tcp -m tcp --dport 4444 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 5555 -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -p tcp -m tcp --dport 5566 -j REJECT --reject-with tcp-reset
# 未被使用的 5568 端口作为参照

二,nmap 扫描端口

使用 nmap 分别扫描上面的 4 个端口,结果如下所示:

  1. 扫描 4444 端口(DROP),并使用 time 命令查看耗时,time nmap -p4444 127.0.0.1
    端口扫描结果 filtered, 耗时 2.2
  2. 扫描 5555 端口(REJECT unreachable),并使用 time 命令查看耗时,time nmap -p5555 127.0.0.1
    端口扫描结果 filtered, 耗时 0.2
  3. 扫描 5566 端口(REJECT tcp-reset),并使用 time 命令查看耗时,time nmap -p5566 127.0.0.1
    端口扫描结果 closed, 耗时 0.2
  4. 扫描 5568 端口,并使用 time 命令查看耗时,time nmap -p5568 127.0.0.1
    端口扫描结果 closed, 耗时 0.2

三,tcpdump 抓包分析

使用下面命令发起 TCP 连接请求(nc 或者 telnet):

nc 127.0.0.1 4444
nc 127.0.0.1 5555
nc 127.0.0.1 5566
nc 127.0.0.1 5568

tcpdump 抓包结果如下:

  1. tcpdump -i lo port 4444
    过滤策略为 DROP,会不断重试发送 SYN 直到超时,占用了带宽资源
  2. tcpdump -i lo port 5555
    过滤策略为 reject with icmp-port-unreachable 的,发两次就停止
  3. tcpdump -i lo port 5566
    过滤策略为 reject with tcp_reset,发出 SYN 包,收到 reset
  4. tcpdump -i lo port 5568
    端口未使用的,发出 SYN 包,收到 reset

四,结论

REJECT –reject-with tcp-reset 比 DROP 好,干脆利落,节约时间,节约带宽。

iptables 之 REJECT 与 DROP 对比相关推荐

  1. 混沌系列 | 其实制造“假死”很容易

    点击上方"朱小厮的博客",选择"设为星标" 回复"1024"获取独家整理的学习资料 欢迎跳转到本文的原文链接:https://honeypp ...

  2. 对比Mac OS上的PF与iptables

    昨天同事问我怎么在Mac上配置策略路由,其实我也不知道!由于自己的实际需求,一直以来都想玩Mac网络功能,可是目光总被它炫烂的外表炫晕!今日同事这么一问我,顿时产生一种研究其究竟的欲望,还好,家里的电 ...

  3. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  4. linux下iptables的编译及简单使用

    前段时间搞openwrt,后来有另外的重要的部门任务安排,转行改公司经过几代迭代的架构的代码的警告,花了约一周时间,花这么久时间,一来代码多,二来绝大部分代码非小弟所写所熟,故个别地方要测试是否OK. ...

  5. Iptables自动添加黑名单脚本

    IPtables自动添加黑名单脚本 1.脚本需求 登陆服务器日志/var/log/secure 检测检查日志中认证失败的行以及频繁发送请求的IP地址(失败条件可自行添加) 添加ip进iptables防 ...

  6. 防火墙iptables介绍

    防火墙: netfilter/iptables是集成在Linux2.4.X版本内核中的包过滤防火墙系统.该架构可以实现数据包过滤,网络地址转换以及数据包管理功能.linux中防火墙分为两部分:netf ...

  7. iptables工具__过滤包—命令

    iptables工具__过滤包-命令(-A.-I.-D.-R.-L等).参数(-p.-s.-d.--sport.--dport.-i.-o等).动作-j (ACCEPT.DROP.REJECT.RED ...

  8. iptables使用方法

    iptables规则编写的通用格式:         iptables [-t table] COMMAND CHAIN [-m matchname] [per-match-options] -j t ...

  9. Iptables防火墙配置详解

    iptables防火墙配置详解 iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. (1)filter表负责过滤数 ...

最新文章

  1. 哈佛牙学院博士后:教你口腔保健基本功之刷牙篇
  2. 运维企业专题(5)LVS高可用与负载均衡中篇——VS/DR模式配置详解
  3. IT巨头混战平板市场三大系统争霸格局初现
  4. 典型的DIV+CSS布局——左中右版式
  5. java封装的特性,java的三大特性(封装、继承、多态)
  6. OpenCV方向梯度直方图HOG的实例(附完整代码)
  7. 77 行代码实现 ABAP ALV 中的双击事件处理
  8. 动态规划训练8 [E - Multiplication Puzzle POJ1651]
  9. Apache Camel 2.23发布
  10. python数据展示库_收藏!盘点很实用的数据科学Python库
  11. autocad型源代码_C# 实现预览dwg文件完整源代码(无需autocad环境)
  12. 计算机文献检索语言,计算机文献检索论文参考文献集 计算机文献检索论文参考文献数量是多少...
  13. 微信网页video播放视频不全屏的解决方法
  14. 樊登读书分享ppt_樊登读书《干法》学习分享
  15. 【爆牙游记】黄山归来不看岳-走进新时代。
  16. C程序设计语言思维导图
  17. 无线网络有信号显示未连接网络连接服务器,路由器无线网络受限制或无连接怎么办...
  18. 关于Java中Match类的appendReplacement()方法的一个坑{ character to be escaped }
  19. 直播软件app开发:如何开发一个可以免费打扑克的直播应用?
  20. ps快捷图标在哪个文件夹_photoshop快捷键及快捷方式(详细)

热门文章

  1. 二维数组找鞍点c语言,怎么求一个二维数组的鞍点
  2. php 5.4.25,php5.4.25的c核心用vs2008sp1编译无法通过。解决思路
  3. Python查找列表中相加等于s的n个数字(combinations的使用)
  4. 圆柱属于能滚动的物体吗_小班科学领域详细教案:会滚动的物体
  5. 20190602:JDBC的增删改操作实践
  6. 计算机集成项目经理 培训,计算机信息系统集成项目经理培训总结.doc
  7. 7nfs客户端没权限_cephfs: 用户态客户端lookup
  8. js获取当前页面的地址和端口_url
  9. VB中的format格式化函数
  10. Java ==和Equals方法的比较