【博客602】net.ipv4.conf.eth0.route_localnet的作用

news2024/11/17 11:52:44

net.ipv4.conf.eth0.route_localnet的作用

背景:默认情况下不能将本机的请求跳转/转发到回环接口上

在某些场景下会用在一台主机内网络流量重定向,比如将在本机回环设备中的数据包强行转发到另一台主机上。结果发现原本在正常的NAT场景中生效的iptables规则在loopback数据包的转发中并不起作用

例如:对本地流量利用iptables来转发不生效,以下规则并不生效

iptables -t nat -I PREROUTING -p tcp -d 192.168.1.0/24 --dport 2222 -j DNAT --to-destination 127.0.0.1:2222

注意:回环lo接口上的 127.0.0.1 地址,不允许发到设备外部sysctl -w net.ipv4.conf.eth0.route_localnet=1 开启route_localnet后,数据包就可以在lo上做nat

具体例子:
1.png

如上图一样,服务器对外只开放了一个80端口,但是web服务监听在了lo 接口上8080端口上,现在要实现外网通过访问服务器的80端口,来提供web服务。
像平常一样,做个DNAT转发,将访问 192.168.30.177(公网)端口80的请求转发/跳转到 127.0.0.1的8080 端口上。使用下面两条命令就行:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080
# iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT

然而网络并不通,原因:

源地址或目标地址设置为环回地址的任何IP 数据报都不得出现在计算机系统之外
通俗就是说网络上不允许出现源或目的为127.0.0.1的包,也不得由任何路由设备进行路由。
必须删除在网络接口上收到具有环回目的地址的报文。这样的分组有时被称为火星分组。
与其他虚假数据包一样,它们可能是恶意的。因此这类报文其实是不会被正常处理的

原因归结:系统上的lo 环回接口为了防止攻击(火星报文),所以内核默认禁止了所有网卡的路由本地网络功能,即丢弃源或目标为127.0.0.1的数据包。

解决方法

临时开启:

sysctl -w net.ipv4.conf.eth0.route_localnet=1

永久开启:

echo "net.ipv4.conf.eth0.route_localnet=1" >> /etc/sysctl.conf
sysctl -p

route_localnet参数含义

route_localnet - BOOLEAN
    Do not consider loopback addresses as martian source or destination
    while routing. This enables the use of 127/8 for local routing purposes.
    default FALSE

意思是不要将来自或发送到 环回接口上的数据包视为火星报文(这里称这个包为火星报文),既不丢弃它,启用用于127.0.0.1的本地路由。

route_localnet功能

该参数指定一个网络设备是否允许转发目的或源地址为127/8的数据包,也就是来自或去往lo设备的数据包,通常情况下Linux系统中的每个网络设备都有自己的参数配置。

1.png

注意:

  • 如果只是本机内的端口跳转可以使用 -j REDIRECT --to-ports port-number.

  • 127.0.0.1这些环回地址与localhost不一样,localhost本质上不能等于127.0.0.1

  • ip_forward参数对lo设备数据包的转发没有影响

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windbg抓一个windows蓝屏分析

前言 设备一直以来挺稳定,但还是小概率事件意外出现某设备突然蓝屏了。查看windows事件查看器提示计算机已经从检测错误后重新启动。检测错误: 0x0000009f (0x0000000000000003, 0xffffad0f4edc7570, 0xfffff8046a09ec20, 0xffffad0f4ef318a0)。已将转储的数据保存…

搭建不同网络训练MNIST

问题在之前的学习过程中,我们学习了如何搭建全连接神经网络训练Mnist数据集。初始时,全连接神经网络训练结果验证集和训练集的精确度不高,在对数据进行归一化,调参等操作提高了精确度。我们这次使用Le-Net5和VGG对MNIST进行训练&a…

STM32—串口

串口介绍 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只…

.NET MAUI 安卓 UI 资源设置

本文主要介绍使用 MAUI 开发安卓应用时,如何更换和处理 UI 资源:应用名称,图标,主题配色,状态栏,闪屏。 文章目录1. 背景2. 资源设置2.1 项目创建2.2 应用名称2.3 应用图标2.4 应用闪屏2.5 沉浸式状态栏1. …

通用智能如何拥有生命的简单设计

如第一个图所示 是和环境交互的时候 行为交互时间和环境反馈时间T0 T1 还有行为消耗能量E0 环境反馈能量E1 如图有四种情况 其中反馈时间T1小于交互时间T0的任务是积极反馈 和打游戏一样要及时反馈才能提起兴趣 这个是整个行为交互过程中最小的记录单元 图二的每个元素都代表多…

STM32项目-STM32智能小车-电子设计大赛-STM32cubemx-STM32f103c8t6STM32串口通信-

记录项目的详细制作过程,所以笔记很长,图很多、很多图不好CSDN搬运, 我把笔记放网盘或者自己根据资料下载 笔记网盘下载: 链接:https://pan.baidu.com/s/1Mk2EVIha7Fpj4Xductg3Uw?pwdVCC1 提取码:VCC1 笔记CSDN下载:…

C++11 入门

作者:小萌新 专栏:C进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍C11的一些背景知识 本篇博客主要是讲解一些关键字 C11前言C11诞生简介列表初始化{}初始化关键字autodecltypenullptr范围forSTL的更…

技术开发117

技术开发117 业务内容: 半导体制造设备零件(阀门零件、管件)、汽车的各种功能部件(发动机、动力转向器、空调、刹车和传动系统)、 建筑和工业设备部件、电信设备的零件、气动特殊气缸、供热和制冷系统的零件、其他一…

CAD中怎么绘制攒尖屋顶?CAD设计攒尖屋顶技巧

在给排水CAD设计中,有些时候为了需要会在图纸中绘制攒尖屋顶,那么你知道CAD软件中怎么构造攒尖屋顶三维模型吗?其实很简单,浩辰CAD给排水软件中提供了实用的攒尖屋顶功能,下面就和小编一起来看看浩辰CAD给排水软件中CA…

Android RCLayout 圆角布局,支持边框,渐变色,渐变色方向等

RCLayout 圆角布局,支持边框,渐变色,渐变色方向等 支持布局 RcRelativeLayout RcLinearLayout RcFrameLayout RcConstraintLayout RcAbsoluteLayout RcTextView 引入 implementation com.github.IHoveYou:RCLayout:1.0.1 项目地址 链接: github 布局属性 <!-- 背景色/渐…

Java-基础-1.异常

一&#xff1a;异常架构 Error 类层次描述了 Java 运行时系统内部错误和资源耗尽错 误。这类错误是我们无法控制的&#xff0c;同时也是非常罕见的错误。所以在编程中&#xff0c;不去处理这类错误。Error 表明系统 JVM 已经处于不可恢复的崩溃状态中。我们不需要管他。 如:写代…

电商前台项目(五):完成加入购物车功能和购物车页面

Vue2项目前台开发&#xff1a;第五章一、加入购物车1.路由跳转前先发请求把商品数据给服务器&#xff08;1&#xff09;观察接口文档&#xff08;2&#xff09;写接口&#xff08;3&#xff09;dispatch调用接口传数据&#xff08;4&#xff09;判断服务器是否已经收到商品数据…

Spring-相关概念入门

Spring-相关概念&入门 2&#xff0c;Spring相关概念 2.1 初识Spring 在这一节&#xff0c;主要通过以下两个点来了解下Spring: 2.1.1 Spring家族 官网&#xff1a;https://spring.io&#xff0c;从官网我们可以大概了解到&#xff1a; Spring能做什么:用以开发web、微服…

六、附近商户,连续签到,UV统计

文章目录附近商户GEO的基本用法导入店铺数据到GEO实现附近商户功能签到BitMap的基本用法实现签到功能实现连续签到统计功能补充&#xff1a;Java中>>和>>>的区别UV统计HyperLogLog的基本用法测试百万数据的统计官方命令文档&#xff1a;https://redis.io/comman…

OpenGLES(一)——介绍

一、OpenGL介绍 OpenGL&#xff08;全写Open Graphics Library&#xff09;是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像&#xff08;二维的亦可&#xff09;&#xff0c;是一个功能强大&#xff0c;调用方便的底层图形库。     O…

六、创建Gitee仓库和提交代码

1、创建仓库 1.1、创建远程仓库 (1)登录Gitee.com&#xff0c;点击右上角 号&#xff0c;再点击新建仓库。 (2)填写仓库名称&#xff0c;设置公开(一般指开源项目)或者私有&#xff0c;其他默认(也可以根据自己需要选择) (3)这里要勾选设置模板&#xff0c;Readme文件。(如果…

Java I/O 流详解(Basic I/O)

目录 1、Java Basic I/O 中的字节流&#xff1a;Byte Streams 2、Java Basic I/O 中的字符流&#xff1a;Character Streams 3、Java Basic I/O 中的缓冲流&#xff1a;Buffered Streams 4、Java Basic I/O 中的打印流&#xff1a;PrintStream &#xff08;数据扫描和格式化…

网易二面:CPU狂飙900%,该怎么处理?

说在前面 社群一位小伙伴面试了 网易&#xff0c;遇到了一个 性能类的面试题&#xff1a; CPU飙升900%&#xff0c;该怎么处理&#xff1f; 可惜的是&#xff0c;以上的问题&#xff0c;这个小伙没有回答理想。 最终&#xff0c;导致他网易之路&#xff0c;终止在二面&…

【蓝桥杯】Python字符串处理和应用

前言&#xff1a; 本文侧重于通过实战训练来提高字符串的处理能力&#xff0c;可以先行学习一下我之前的文章&#xff1a;蓝桥杯Python快速入门&#xff08;4&#xff09; &#xff0c;学习完基础知识再来刷题才会事半功倍&#xff01; 字符串处理 # 字符串切片 str1"1…

优秀码农选择对象详细指南,看完记得要实战噢

2023年了&#xff0c;你是否已到了法定年纪&#xff0c;那么这一篇优秀码农选择对象的详细指南&#xff0c;你一定用得到&#xff0c;看完记得感谢狗哥哦&#xff01; 目录 一、对于婚姻先来思考这么几条 1. 太快决定结婚&#xff1f; 2. 一方或双方急于结婚&#xff1f; 3.…