linux环境中,两个不同网段的机器互通

环境如下:

  host1 单网卡 eth0 172.24.100.15/16

  host2 双网卡 eth0 172.24.100.14/16   eth1 192.168.122.214/24

  host3 单网卡 eth0 192.168.122.215/24

整个环境如下图:

要求:让host1和host3互通,也就是host1能ping通host3,host3也能ping通host1

解决:

第一,在host2上,保证能同时ping通host1和host3

第二,在host1上,添加路由如下

            route add default gw 172.24.100.14   #添加默认网关路由,保证从host1上到192.168.122.0/24网段的请求先到达host2

第三,在host2上,添加路由如下

            route add -net 172.24.0.0 netmask 255.255.0.0 dev eth0  #添加路由,实际上就是指路,指定到172.24.0.0/16网段去的请求通过eth0网卡出去
            route add -net 192.168.122.0 netmask 255.255.255.0 dev eth1 #添加路由,指定到192.168.122.0/24网段去的请求通过eth1网卡出去

第四,还是在host2上,开启路由转发如下

            echo 1 >/proc/sys/net/ipv4/ip_forward

第五,在host3上,添加路由如下

            route add default gw 192.168.122.214  #添加默认网关路由,保证从host3上到172.24.0.0/16网段的请求先到达host2

这样相互就能ping通,是不是很神奇

时间: 2024-10-02 04:26:29

linux环境中,两个不同网段的机器互通的相关文章

WebRtc 研究笔记1 Arch linux 环境中下载, 编译

开篇第一句,我觉得是最最重要的: 注意: WebRtc 源码的编译基础工作: 翻墙!  一定要在命令行, 让Git Svn 等命令访问到google的服务器,否则会出现各种异常 我的环境是 ArchLinux X64, 翻墙的方法: 1.各种VPN 2.修改hosts 3.各种代理服务器 ... 使用到的软件包 jdk 1.6 ( jdk1.7 无法编译), svn, git 环境变量: // /etc/profile # java export JAVA_HOME=/opt/jdk expor

[软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)

本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如下知识有一些了解: (1)C/C++编程方法 (2)makefile的编写 (3)linux命令行操作 (4)GTEST背景知识:它是用来干什么的?它用什么语言编写的?它的一些基本语法?等等 以上知识不需要做到熟能生巧,只要达到入门级别,使用GTEST不会费任何力气,毕竟GTEST也不是一个高门槛的

linux环境中执行Mysql脚本

1.首先进入shell~ 2.进入服务器后,输入mysql -h localhost -u root -p,进入MySql: 3.输入MySql密码: 4.将脚本复制到服务器,具体怎么做,可以用Xftp; 5.例如,我执行的test.sql,在/usr/local/test.sql目录下,在shell中输入source /usr/local/test.sql linux环境中执行Mysql脚本,布布扣,bubuko.com

LINUX环境中tomcat启动错误:The servlets named X and Y are both mapped to the url-pattern [/Z] which is not permitted

最近有一个问题困扰了我3天,我在windows部署项目无误后,准备将项目发布到阿里云linux服务器上,发现启动报错了:LINUX环境中tomcat启动错误:The servlets named X and Y are both mapped to the url-pattern [/Z] which is not permitted,首先想到的是肯定部署代码或者项目配置文件的事,怀疑有可能是jar包出错了,果不其然,在项目的WebContent\WEB-INF\lib发现了servlet-ap

linux环境中通过useradd命令,创建用户的时候指定用户的base-dir

需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/app下,研究了下,在此记录下 操作过程: 1.通过查看useradd命令的帮助文档,知道创建用户base_dir的配置在/etc/default/useradd文件中 [[email protected] ~]# cat /etc/default/useradd # useradd defaults

linux环境中通过/dev/urandom设备产生随机密码

需求说明: 今天在调试SVN的时候,需要创建用户的随机密码,想了下,在linux环境中是否能够生成呢,就搜索了下, 然后结合看到的帖子,分析一个可以生成密码的命令,在此记录下. 操作过程: 1.通过/dev/urandom工具生成随机密码 [[email protected] ~]# cat /dev/urandom | tr -dc a-zA-Z0-9#@ | head -c 13;echo[email protected][[email protected] ~]# cat /dev/ura

Linux环境中GitHub的配置与简单使用教程

一.环境 1.1 操作系统(其他发行版亦可): [[email protected] ~]# cat /etc/centos-release CentOS Linux release 7.5.1804 (Core) 1.2 Git版本: [[email protected] ~]# git --version git version 1.8.3.1 二.步骤 2.1 下载并安装Git软件. [[email protected] ~]# yum -y install git 2.2 创建SSH k

Linux环境中各系统目录含义

在搭建Linux环境之后,各个系统目录的含义及保存哪类文件,详细说明如下: 1./bin:一般为可执行的二进制文件,为所有用户使用. 2./sbin:一般为可执行的二进制文件,只提供给管理员使用. 3./dev:设备文件,例如:网卡,磁盘等 4./etc:配置文件 5./home:用户的家目录 6./lib:共享库和内核模块 7./media和/mnt:挂载点 8./opt:可选的软件安装路径(已经不常用) 9./root:管理员的家目录 10./srv:服务运行的中间数据 11./tmp:临时

Spring Boot 在Linux环境中 使用System.loadLibrary("XXX") 加载so文件

场景, 在Spring Boot加载so文件, 在此记录配置的过程和帮助过我的链接文档 System.loadLibrary("hello"); // Load native library at runtime hello.dll (Windows) or libhello.so 注意: window环境中文件名为hello.dll 或 libhello.so 步骤1: 把so文件存放在一个目录中 步骤2: Linux 运行jar文件配置lib库地址 nohup java -Dfil