Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux系统添加路由命令_linuxeth1添加路由

linux系统添加路由命令_linuxeth1添加路由

作者头像
全栈程序员站长
发布于 2022-11-09 02:42:14
发布于 2022-11-09 02:42:14
3.1K02
代码可运行
举报
运行总次数:2
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

Linux添加临时路由及永久路由的方法

一:使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法: //添加到主机的路由

route add –host 192.168.1.11 dev eth0

route add –host 192.168.1.12 gw 192.168.1.1

//添加到网络的路由

route add –net 192.168.1.11 netmask 255.255.255.0 eth0

route add –net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1

route add –net 192.168.1.0/24 eth1

//添加默认网关

route add default gw 192.168.2.1

//删除路由

route del –host 192.168.1.11 dev eth0

删除默认路由

#route del default gw 192.168.2.1

二:在linux下设置永久路由的方法: 1.在/etc/rc.local里添加 方法: route add -net 192.168.3.0/24 dev eth0 route add -net 192.168.2.0/24 gw 192.168.2.254

2.在/etc/sysconfig/network里添加到末尾 方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

3./etc/sysconfig/static-routes : (没有static-routes的话就手动建立一个这样的文件) any net 192.168.3.0/24 gw 192.168.3.254 any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129

4.开启 IP 转发:

echo “1” >/proc/sys/net/ipv4/ip_forward (临时)

vi /etc/sysctl.conf –> net.ipv4.ip_forward=1 (永久开启)

这里并没有错误的地方,只不过之前没有接触对这些参数没什么想法,这次正好研究了下,大概了解了下没个参数的意思。 首先从最简单的是route add方法: route add这个是添加路由的命令,这个没什么好说的,然后是后面的-host和net参数,根据紧跟参数后面的信息可以发现host指的是添加一个主机到路由中,net是添加一个网段到路由中。在后面的参数是dev和gw,字面理解加上后面紧跟的值判断,dev表示这个host或者这段net走的是那个网口,gw是gateway,自然是通过哪个网关了。对这里为何指定网口或者指定网关都行呢,我的认识是这样的,网口上配置有网关的信息,指定的网口其实最终还是去读取这个网口对应的网关信息,等效于指定gw参数。不过指定网口一般是由于有多个网络环境的情况,如果网口没有指定网关,会去读取默认的网关,所以这里一般要求把网口的网关信息配置上去,在linux下很多时候网关信息并不是配置在网口的配置文件,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 文件里面,而是在/etc/sysconfig/network这里面,所以在用dev参数的时候需要小心这点,尽可能通过指定gw的方式。 为什么会介绍到route add方法,因为后面会有用到。现在回到主题,关于static-routes的设置。网上一般的都是写着: any net 192.168.3.0/24 gw 192.168.3.254 设置的都是整个网段的,但如果是单个主机怎么设置呢?同时从厂家那边给了一个脚本是: eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x 看上去也很对的样子,但是执行发现netstat -an里面看不到添加的信息,完全不行。 然后我们在看下static-routes这个文件的作用,根据网上的说法,static-routes其实在被network这个脚本调用的,打开这个脚本: /etc/rc.d/init.d/network 里面有写到:

Add non interface-specific static-routes.

if [ -f /etc/sysconfig/static-routes ]; then grep “^any” /etc/sysconfig/static-routes | while read ignore args ; do /sbin/route add – a r g s d o n e f i n e t w o r k 在执行的时候到 s t a t i c − r o u t e s 里面寻找 a n y 开头的行,然后执行 / s b i n / r o u t e a d d − args done fi network在执行的时候到static-routes里面寻找any开头的行,然后执行 /sbin/route add – argsdonefinetwork在执行的时候到static−routes里面寻找any开头的行,然后执行/sbin/routeadd−args 相当于手动执行了route add脚本,那后面事情就简单了,回到了手动执行的方式,根据前面的说明,正确的脚本就是: any host 10.0.0.10 gw 192.168.1.1 network执行的时候把any去掉,获取后面的参数:host 10.0.0.10 gw 192.168.1.1 然后执行route add -host 10.0.0.10 gw 192.168.1.1 注意这里host前面的-是network自带的,不需要配置到static-routes文件中。 ############################### echo “route add -net 172.16.100.0/24 gw 192.168.6.249” >>/etc/rc.local 使得在系统重启之后,加入这条命令。 ################################################################ Debian/Ubuntu RedHat/CentOS/Fedora如何永久添加静态路由

目前Linux系统网络配置基本都差不多,但是不同的发行版又有些不同,常见主要区分两大类型: (1)RedHat(RHEL)/CentOS/Fedora Linux是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面。 (2)Debian/Ubuntu Linux网络配置则是存在/etc/network/目录下面的几个文件里面。

比如我们要给linux系统添加静态路由,就要区分不同的平台,RedHat(RHEL)/CentOS/Fedora Linux环境永久添加静态路由通常是写在诸如/etc/sysconfig/network-scripts/route-eth0这些文件里。而Debian/Ununtu下有所不同,添加路由的脚本放到/etc/network/interfaces里执行。

一、Debian平台实例: Debian/Ununtu添加路由的脚本放到/etc/network/interfaces里执行: auto eth0 iface eth0 inet static address 192.168.1.88 netmask 255.255.255.0 gateway 192.168.1.1 up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1

二、RedHat、CentOS、Fedora平台实例: 使用配置文件/etc/sysconfig/network-scripts/route-interface,interface可以根据实际的网卡换成网卡名,比如我要在eth0上加静态路由,那就写route-eth0 配置文件的格式如下:

ADDRESS0=X.X.X.X NETMASK0=x.x.x.x GATEWAY0=X.X.X.x

如果有多条静态路由要建立,那么继续在文件里追加,ADDRESS、NETMASK、GATEWAY后面的数字递增即可。如有2条记录:

ADDRESS0=X.X.X.X NETMASK0=x.x.x.x GATEWAY0=X.X.X.x

ADDRESS1=X.X.X.X NETMASK1=x.x.x.x GATEWAY1=X.X.X.x

采用规范的方法的好处如下: 1.系统启动的时候自动加上这些静态路由,无需写rc.local 2.如果修改了静态路由,只需要service network restart即可,无需手动使用route命令增删静态路由

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185921.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月4日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Linux】:线程概念与控制
CPU看到的: 执行流 <= 进程 注意:Linux中的执行流叫:轻量级进程
IsLand1314
2024/12/20
2090
【Linux】:线程概念与控制
Linux:多线程(一.Linux线程概念、线程控制——创建、等待、退出、分离,封装一下线程)
但是,每次创建子进程都要复制父进程的地址空间、代码段、数据段等资源,然后将子进程的执行流独立地运行起来。这代价也不小。所以线程的优势便体现出来:创建一个新线程的代价要比创建一个新进程小得多
是Nero哦
2024/08/02
9670
Linux:多线程(一.Linux线程概念、线程控制——创建、等待、退出、分离,封装一下线程)
【Linux】从零开始认识多线程 --- 线程控制
复习的差不多了,我们了解了线程的基本概念,接下来就要开始学习如何管理线程 — 线程控制。根据我们之前学习的进程控制,大概可以估计一下线程控制的基本接口:线程创建 , 线程等待 , 线程退出…
叫我龙翔
2024/07/16
1600
【Linux】从零开始认识多线程 --- 线程控制
Linux线程基础
  加载到内存中的程序,我们称为进程。我们创建一个进程,简单来说是,分配进程地址空间,加载各种数据,与物理内存之间建立映射关系等。做完这些动作,我们才能说创建了进程,也就是说,创建一个进程的开销(时间空间成本开销)是很大的。
用户11029129
2024/09/24
1160
Linux线程基础
【Linux线程】Linux线程编程基础:概念、创建与管理
🔍前言:在Linux操作系统的广阔天地里,线程作为并发编程的基本单位,扮演着举足轻重的角色。它们如同操作系统的微观脉络,穿梭于各个任务之间,高效地协调着系统的运行。然而,要想驾驭好这些微观世界的精灵,对线程控制的深入理解是不可或缺的
Eternity._
2024/10/17
2320
【Linux线程】Linux线程编程基础:概念、创建与管理
【Linux】多线程——线程概念|Linux下进程与线程|线程控制
地址空间是进程能看到的资源窗口:一个进程能看到代码区、共享区、内核区、堆栈区,大部分的资源都是在地址空间上看到的
平凡的人1
2023/10/15
7130
【Linux】多线程——线程概念|Linux下进程与线程|线程控制
初谈Linux多线程--线程控制
在Linux中,线程执行的是进程代码的一部分,也就是说,线程是进程的实体,可以看作是进程内的一个执行单元,我们将这些不同的执行单元称之为轻量级进程,不同线程之间可以通过共享内存来进行通信。
南桥
2024/08/02
2180
初谈Linux多线程--线程控制
Linux——多线程
这里也能解释为什么对于常量字符串类型为什么不能修改了,因为要修改的时候会从虚拟地址转化成物理地址,然后检查权限是否可以修改等等。
有礼貌的灰绅士
2023/06/14
1.2K0
Linux——多线程
【Linux】盘点<多线程控制>基本操作&演示:创建&中止&等待&分离
YY的秘密代码小屋
2024/10/17
1930
【Linux】盘点<多线程控制>基本操作&演示:创建&中止&等待&分离
多线程编程初探:掌握基本概念与核心原理
就是我们在进程当中运行程序的时候都是单执行流往下运行的,如果要多执行流往下运行,就需要引入多进程。
绝活蛋炒饭
2024/12/29
3160
多线程编程初探:掌握基本概念与核心原理
Linux线程-概念和控制
注:pthread_exit或者return返回的指针所指向的内存单元必须是全局的或者是用malloc分配的,不能在线程函数的栈上分配,因为当其它线程得到这个返回指针时线程函数已经退出了
用户9645905
2022/11/30
1.3K0
Linux线程-概念和控制
【Linux】详解线程控制之线程创建&线程终止&线程等待&线程分离
pthread_exit函数中可以设置retval返回值,在主线程中可以调用pthread_join函数来获取子线程的返回值。
用户10923276
2024/05/24
6640
【Linux】详解线程控制之线程创建&线程终止&线程等待&线程分离
Linux线程控制
本篇我将学习如何使用多线程。要使用多线程,因为Linux没有给一般用户直接提供操作线程的接口,我们使用的接口,都是系统工程师封装打包成原生线程库中的。那么就需要用到原生线程库。因此,需要引入-lpthread,即连接原生线程库。
二肥是只大懒蓝猫
2023/03/30
1.1K0
Linux线程控制
【linux学习指南】模拟线程封装与智能指针shared_ptr
std::shared_ptr 是 C++ 标准库 <memory> 头文件中提供的一种智能指针,用于管理动态分配的对象,它实现了共享所有权的语义,下面为你详细介绍它的作用、工作原理以及在你给出的代码中的使用场景。
学习起来吧
2025/02/11
1030
【linux学习指南】模拟线程封装与智能指针shared_ptr
初识Linux · 线程控制(1)
前文我们已经介绍了线程的基本概念,知道查看线程是使用ps -aL查看,并且因为线程的特殊性,我们必须在用户层和操作系统层面接一层库,也就是线程库,编译程序的时候需要将程序link到线程库里面。
_lazy
2024/12/20
940
初识Linux · 线程控制(1)
Linux多线程【线程控制】
线程是进程内部的一个执行流,作为 CPU 运行的基本单位,对于线程的合理控制与任务的执行效率息息相关,因此掌握线程基本操作(线程控制)是很有必要的
北 海
2023/09/18
2920
Linux多线程【线程控制】
Linux之线程安全(上)
用pthread_create创建一个线程,产生的线程ID存放在第一个参数之中,该线程ID和内核中的LWP不是一回事。pthread_create函数第一个参数指向一块虚拟内存单元,该内存单元的地址就是新创建线程ID,这个ID是线程库的范畴,而内核中LWP是进程调度的范畴,轻量级进程是OS调度的最小单位,需要一个数值来唯一标识该线程。 Linux并不提供真正的线程,只提供了LWP,但是程序员不关注LWP,只关注线程。因此,OS在OS与应用程序之间设计了一个原生线程库——pthread库。系统保存LWP,原生线程库可能存在多个线程,别人可以同时使用。OS只需要对内核执行流LWP进行管理,而提供给用户使用的线程接口等其他数据需要线程库自己来管理,线程库对线程的管理:先描述,再组织。 线程库实际上是一个动态库:
摘星
2023/10/15
2810
Linux之线程安全(上)
【Linux】深入理解线程控制
pthread_join的作用是线程等待,其中retval参数传递线程退出状态的原理是:当目标线程结束时,pthread_join 会将目标线程的退出状态(即线程函数的返回值或 pthread_exit 传递的参数)存储在 *retval 所指向的内存位置,也就是说,pthread_join 会修改 retval 所指向的那个 void * 类型变量的值
s-little-monster
2025/04/15
730
【Linux】深入理解线程控制
多线程——线程概念和线程控制
页表有许多条目。32位系统下,物理内存是4G即2^32字节,即有2^32个地址。其中物理内存中被划分为许多页框(或者叫块),页框大小4KB。相应的磁盘也被划分为许多页帧,页帧大小也是4KB,这样OS将数据从磁盘加载到内存或内存保存到磁盘上就是以4KB为单位。回到内存,内存有2^32个地址,那么就有2^32个地址需要被映射。页表就需要建立2^32个逻辑地址与物理地址的映射。
梨_萍
2023/09/11
4930
多线程——线程概念和线程控制
【Linux】线程安全——补充|互斥、锁|同步、条件变量
pthread_create创建一个线程,产生一个线程ID存放在第一个参数之中,该线程ID与内核中的LWP并不是一回事。pthread_create函数第一个参数指向一块虚拟内存单元,该内存单元的地址就是新创建线程ID,这个ID是线程库的范畴,而内核中LWP是进程调度的范畴,轻量级进程是OS调度的最小单位,需要一个数值来表示该唯一线程。
平凡的人1
2023/10/15
3710
【Linux】线程安全——补充|互斥、锁|同步、条件变量
相关推荐
【Linux】:线程概念与控制
更多 >
加入讨论
的问答专区 >
1技术总监架构部总经理擅长3个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验