iptables为什么需要增加loopback回环的规则
先说loopback回环的大致个人理解:
1、lo的主要作用是基于本地访问本地的数据包会经过lo这张网卡。
2、比如ping 127.0.0.1时,你在eth0抓不到,只能在lo这张网卡捕获。
再来看下简单的iptables的几个链的规则:
PREROUTING
:在做出路由决策之前,数据包将进入此链。INPUT
:数据包将在本地交付。它与打开套接字的进程没有任何关系; 本地交付由“本地交付”路由表控制:ip route show table local
。FORWARD
:所有已路由但不用于本地传递的数据包将遍历此链。OUTPUT
:从机器本身发送的数据包将访问此链。POSTROUTING
:路由决定已经做出。数据包在将它们交给硬件之前进入该链。
那么下面来看下为什么需要再iptables增加lo的访问:
1、如果我们在iptables设置了防火墙,一般防火墙会放在默认规则里面:iptables -P INPUT DROP,注意这里的-P是默认规则的意思,顺序在最后,且链表为filter。
2、那么如果要能在本机可以ping通本机,那么需要将lo的访问规则打开:iptables -A INPUT -i lo -j ACCEPT
3、通过上面可以看出,iptables做防火墙的特性,不需要指定非默认规则,默认规则对于iptables来说是最后才执行,但凡有一个匹配到就不往下执行,所以此时ping本机可以通。
4、在网上很多只是增加了这两条规则:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
而没有真正说明为什么要这样加,其实这样加主要还是因为限制的防火墙规则后这两台才生效。
5、很多情况是在转发上会用到,其实如果不增加防火墙规则时,这一点的意义不太大。
6、所以,只要是本机进程内相互访问的,都会去到lo这张网卡上,所以在外部IP时对于iptables选择的是eth0这样的网卡,要捕获本机时是lo这个网卡。
参考:
https://crm.vpscheap.net/knowledgebase.php?action=displayarticle&id=29(这个文章介绍了开头会增加默认规则限制全部请求,也验证了后续为什么需要增加lo的放行)
https://unix.stackexchange.com/questions/395328/iptables-rule-for-loopback?answertab=votes#tab-top
iptables为什么需要增加loopback回环的规则的更多相关文章
- SharePoint回环检查(Loopback Check)相关问题
Loopback Check(回环检查)本来不是一个SharePoint问题,是Windows Server为了增强自身安全性在Server 2003 SP1后引入的一个功能, 在近几个月中导致了一系 ...
- loopback(回环)
Loopback接口是一个虚拟网络接口,在不同的领域,其含义也大不一样. 1. TCP/IP协议栈中的loopback接口 在TCP/IP中回环设备是一个通过软件实现的虚拟网络接口,它不与任何硬件相 ...
- Linux回环接口(loop-back/loopback)
回环接口(loop-back/loopback) Moakap整理 Loopback接口是一个虚拟网络接口,在不同的领域,其含义也大不一样. 1. TCP/IP协议栈中的loopback接口 在TCP ...
- Linux回环接口-----(loop-back/loopback)
回环接口(loop-back/loopback) Moakap整理 Loopback接口是一个虚拟网络接口,在不同的领域,其含义也大不一样. 1. TCP/IP协议栈中的loopback接口 在TCP ...
- CentOS7 增加回环地址
添加回环地址的命令和说明如下: #添加一个回环地址到lo网卡,添加多个可以改lo:后边的序号 [要添加的地址] netmask 255.255.255.255 broadcast [要添加的地址] # ...
- linux回环网卡驱动设计
回环网卡驱动 1.回环网卡和普通网卡的区别是他是虚拟的不是实际的物理网卡,它相当于把普通网卡的发送端和接收端短接在一起. 2.在内核源代码里的回环网卡程序(drivers/net/loopback.c ...
- 为什么不能将客户端的连接请求跳转或转发到本机lo回环接口上?
一.为什么不能将本机的请求跳转/转发到回环接口上? 如上图一样,服务器对外只开放了一个80端口,但是web服务监听在了lo 接口上8080端口上,现在要实现外网通过访问服务器的80端口,来提供web服 ...
- 为UWP应用开启回环访问权限
最近在项目中遇到UWP调用WCF的需求,考虑到UWP不能寄宿WCF服务(如果能,或者有类似技术,请告知),于是写了一个WPF程序寄宿WCF服务,然后再用UWP调用服务. 写的时候并没有碰到什么问题,直 ...
- wireshark抓本地回环包
问题描述: 在网络程序开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信.但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以 方法一:Wi ...
随机推荐
- Android数据存储:File
Android数据存储之File Files:它通过FileInputStream和FileOuputStream对文件进行操作.但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写 ...
- JavaScript 使用 mediaDevices API 选择摄像头
大多数智能手机都有前置和后置摄像头,当你在创建视频应用时你可能想要选择或者切换前置.后置摄像头. 如果你开发的是一款聊天应用,你很可能会想调用前置摄像头,但如果你开发的是一款拍照软件,那么你会更倾向于 ...
- Sandcastle方法生成c#.net帮助类帮助文档chm
Sandcastle方法生成c#.net帮助类帮助文档即chm后缀的文档,其实是通过C#文档注释生成的XML文件来生成帮助文档的.因此,第一步就是生成XML文档, 步骤1生成XML文档 1.打开VS- ...
- C++ code:数组初始化
具有初始化的数组定义,其元素个数可以省略,即方括号中的表达式可以省略.这时候,最后确定的元素个数取决于初始化值的个数.例如: #include<iostream> using namesp ...
- PHP获取数组最后一个元素的键和值
<?php /** * PHP获取数组中最后一个元素下标和值 */ $arr = ['1' => 'name', '3' => 2, 5 => 6, 'name' => ...
- 扩展欧几里得,解线性同余方程 逆元 poj1845
定理:对于任意整数a,b存在一堆整数x,y,满足ax+by=gcd(a,b) int exgcd(int a,int b,int &x,int &y){ ){x=,y=;return ...
- 步步为营-71-asp.net的简单练习(图片处理)
1 原有图片添加水印 1.1 封装一个类,用于获取文件路径 using System; using System.Collections.Generic; using System.IO; using ...
- HTTP请求报文和响应报文
HTTP请求报文 GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Upgrade-Insecure-Requests: 1 User ...
- AOJ 0005 GCD and LCM
题意:求两数最大公约数和最小公倍数. 类型:辗转相除法 算法:gcd(a,b)=gcd(b,a%b),lcm(a,b)=a*b/gcd(a,b). #include <cstdio> #i ...
- 【莫比乌斯反演】HDU1695_GCD
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 第一道莫比乌斯反演 感觉很巧妙的就是利用了F(x)=(n/x)*(m/x) 之后的那个去重也挺不 ...