Linux中设置路由以及虚拟机联网图文详解
什么是路由?
路由,是指通过相互连接的网络把数据包从源站传送到目的站的活动,在路由过程中数据包通常会经过一个或多个中转节点(即路由器),这些沿途的路由器会沿着一条最佳路径转发数据包,直至目的地。
什么是路由器?
路由器用于连接不同的网络,是网络之间互相连接的枢纽。路由器的主要工作是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据有效地传送到目的地。
什么是网关?
网关(GATEWAY)是在网络层以上实现网络互连。
实验1:模拟路由器,让不在同一网段的两台主机可以ping通
首先,要确定哪个虚拟机要设置成路由器,并为这台虚拟机添加两个网卡。我这里是将server端设置为路由器。 在真机中,切换到超级用户root,输入命令:virt-manager
双击server,点击“灯泡”
选择Add Hardware ——>network——>Device model:选择virtio——>Finish
然后给它设置两个不同网段的ip,我这里设置的是172.25.254.224和1.1.1.224
将另一个虚拟机的ip设置为1.1.1.124
将设置为路由器的那台虚拟机和同网段的主机ping一下,看看能不能ping通。
在路由端:
sysctl -a | grep ip_forward ##查看内核路由是否开启,1是打开,0是未开,如果不能通信说明为未开。
未开启,在/etc/sysctl.conf文件中写入:
sysctl -p 目的是让它生效:
在防火墙开启的情况下,开启永久防火墙伪装:
在客户端此时未设置网关,我们在/etc/sysconfig/network中设置网关(1.1.1.224),重启网络。
最后在客户端尝试ping172.25.254网段,发现成功了。
也能登陆真机
over!
实验2:虚拟机联网
主要思想是将真机模拟为一个路由器 此时真机连上网了,可以ping通百度,查看真机的IP
sysctl -a | grep ip_forward ##查看内核路由功能是否开启
systemctl start firewalld ##打开防火墙
firewalld-cmd --add-masquerade ##开启防火墙伪装
在客户端,将ip设置为和真机一个网段,我设置的是172.25.254.124
把网关设置为真机ip172.25.254.1,重启
ping百度的ip183.232.231.172
可以通过输入ip地址访问百度了!
over! 注意:修改网关有两种方式:
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##设置单独的网卡的网关
vim /etc/sysconfig/network ##设置全局网关
设定全局网关对所有的网卡都生效,访问外网时将所有的数据包都扔给这个网关。这两种方式设定完成后都要重启网络。
以上所述是小编给大家介绍的Linux中设置路由以及虚拟机联网详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!
- Nginx+keepalived实现高可用
- 来一波Linux中查看cpu、磁盘、内存、网络的命令
- PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
- [MSDN]通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行
- Flask-配置与调试
- PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
- MSDN官方的ASP.Net异步页面的经典示例代码
- Nginx反向代理、负载均衡功能
- 2018即将面临的12个云安全风险
- Flask快速入门,知识整理
- python的reduce()函数
- 企业级memcached缓存数据库结合php使用与web管理memcached
- python中星号的意义(**字典,*列表或元组)
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SSM第七讲 SpringMVC概述和基础知识详解
- SSM第八讲 SpringMVC高级特性
- SSM第九讲 Spring+SpringMVC+MyBatis框架整合
- 大型项目技术栈第一讲 Vue.js的使用
- springBoot 入门(五)—— 使用 纯注解方式 的springboot+ mybatis+junit4 整合
- 常见加载类错误分析
- 常用的ClassLoader分析
- 如何实现自己的ClassLoader
- Hacking with iOS: SwiftUI Edition - 潜力客户名单项目(三)
- 大型项目技术栈第四讲 SQL语句构建器
- redis 入门(一)——Linux环境安装测试以及基本命令演示
- 大型项目技术栈第五讲 富文本编辑器
- weblogic 11g StuckThreadMaxTime 问题解决 以及 线程池、数据库连接池参数调优
- 大型项目技术栈第九讲 kaptcha的使用
- 大型项目技术栈第十讲 日志与性能监控