Linux 桥接ping不通外网(特别是校园网) 解决方式及错误总结
虚拟机有三种网络连接方式:
桥接:你的虚拟机在你所在的局域网内相当于一台独立的主机,可以和局域网内的机器互通,当然也可以访问外网。
NAT:你的虚拟机的TCP/IP配置信息是由VMent8网卡的DHCP自动配置的,无法自行修改,所以只能和你的宿主机相互玩耍(你的宿主机能上外网,它也就能)。缺点是局域网中的其他主机和你的虚拟机不能相互访问。
Host-Only:传说中的自娱自乐模式,虚拟机的TCP/IP配置信息室友VMent1网卡的DHCP自动配置的,你的虚拟机之间可以互相通信,虚拟机和你的宿主机也可以互相通信,但是访问不了你宿主机所在的局域网,也就是说访问不了外网。
一般来说我们都使用桥接模式来让虚拟机联网,但如果你只是想联网并且懒的手动配置IP的话,也可以选择NAT模式,躺着联网,方便快捷全自动式配置。
简单的说下桥接步骤:
我用的是VMware,其他虚拟机操作也大同小异
1. 菜单栏-->编辑-->虚拟网络编辑器
选择桥接模式,然后桥接到一张宿主机可以上网的网卡,或者直接选择自动也可以。
2. 第一大坑,虚拟机的网络适配器选择桥接模式,上面的设备状态-->启动时连接这个勾一定要打上
其实在高版本的VMware中这个是自动打上的。。。
3. 开机如果网卡没启动就启动下eth0网卡:ifconfig eth0 up
如果你的宿主机的网卡是dhcp模式的也就是如下图一样是自动获取ip的
你的虚拟机也会自动配置好TCP/IP,如果不是请手动配置。
进入主题,错误总结
1. 手动配置IP的时候忘记配默认网关会出现以下错误
[root@Server ~]# ping 8.8.8.8
connect: 网络不可达
输入route
如下图所示是配置了Default Gateway的
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.4.16.0 * 255.255.252.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 10.4.16.1 0.0.0.0 UG 0 0 0 eth0
这个是没有的
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.4.16.0 * 255.255.252.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
添加默认网关
route add default gw 10.4.16.1 (这个要和宿主机的网关一样,宿主机打开cmd输入ipconfig,就可以看到每块网卡的信息)
不过这个方法不是永久的添加了默认网关,关机重启或者重启网络服务的时候就失效了
永久添加默认网关
方法一:在vim /etc/networks下添加GATEWAY=10.4.16.1 然后重启网络服务service network restart
方法二:在vim /etc/sysconfig/network-scripts/ifcfg-eth0(你选择的网卡)下添加GATEWAY=10.4.16.1 然后重启网络服务service network restart
不过ifcfg-eth0文件的优先级是高于networks文件的,一般在ifcfg-eth0下面配置IP的时候直接把默认网关也配了。
方法三:vim /etc/sysconfig/static-routes(如果没有static-route就新建一个)下面添加any net default gw 10.4.16.1
2. DNS没有配置会出现下面的错误
[root@Server ~]# ping baidu.com
ping: unknown host baidu.com
配置DNS
方法一:和上文一样也是在vim /etc/networks中添加,添加语句nameserver 8.8.8.8和nameserver 114.114.114.114这个是谷歌的和电信的dns如果你要添加宿主机的也可以,在宿主机的网络和Internet设置-->以太网-->点你的网络-->拉到最下面可以看到宿主机的DNS
方法二:在vim /etc/sysconfig/network-scripts/ifcfg-eth0中添加DNS1=8.8.8.8和DNS2=114.114.114.114
方法三:如果宿主机和虚拟机(ifcfg-eth0中的BOOTPROTO=dhcp)都是dhcp模式,会自动设置DNS,如果配置了默认网关好像也会自动获取。
查看DNS
[root@centos ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
nameserver 8.8.8.8
nameserver 114.114.114.114
总的来说只要在vim /etc/sysconfig/network-scripts/ifcfg-eth0这个配置文件下配置了IP地址,子网掩码,默认网关以及DNS
就可以了。
DEVICE=eth0(设备名)
HWADDR=00:0C:29:B9:99:5E(网卡硬件地址(MAC地址))
TYPE=Ethernet(网络类型)
UUID=d8904cd6-2bd4-435c-ac09-edd5d93232cf(通用唯一识别码)
ONBOOT=yes(是否开机启动)
NM_CONTROLLED=yes(network manager的参数,实时生效不需要重启)
BOOTPROTO=static(用指定的方式来获取地址,有static,dhcp,和none三种)
IPADDR=10.4.16.50(IP地址,要和宿主机在同一网段,一般自定义最后一个数字就好了)
GATEWAY=10.4.16.1(默认网关,和宿主机一样)
NETMASK=255.255.255.0(子网掩码,和宿主机一样)
BROADCAST=10.4.18.255(广播地址)
DNS1=8.8.8.8(第一个dns服务器)
DNS2=114.114.114.114(第二个dns服务器)
简单的配置只要配了红色字体就可以了。。。
修改完记得重启网络服务:service network restart
3. 防火墙影响
关闭linux防火墙:service iptables stop
禁止防火墙开机启动:chkconfig iptables off
检查防火墙状态:service iptables status
然后把宿主机的防火墙也关了,我的就是只有关闭宿主机的防火墙虚拟机才能ping通宿主机
有关校园网的问题
我在学校宿主机的ip是10.4.18.20而网关是10.4.16.1子网掩码是255.255.252.0
我把虚拟机的ip设置成10.4.18.n,会出现可以ping的通8.8.8.8,ping外网的时候网址的ip也可以解析出来,但就是不出现包的
信息必须Ctrl+c才能结束
我的解决方式是把10.4.18.n改成了10.4.16.n才能ping通
但是问题又出现了,这个n也有要求比如10.4.16.22就可以ping外网,而10.4.16.20就不行和10.4.18.n情况一样。。。
我猜是虚拟机发出的包少了什么配置数据,所以被校园网的防火墙给劫了,导致返回不了数据,因为我用虚拟机ping宿主机,当宿主机的防火墙没有关的时候也是这样,一直没有数据返回。
于是我就让宿主机脸上wifi结果一切畅通,丝滑流畅。。。校园网真的是坑。。。
为了论证我的猜想,我在虚拟机上安装了traceroute
traceroute baidu.com 路由追踪了下,看看是那个网关被拦截了,结果如下
traceroute to baidu.com (123.125.115.110), 30 hops max, 60 byte packets1 * * *2 10.1.0.117 (10.1.0.117) 1.871 ms 1.853 ms 3.254 ms3 10.1.1.22 (10.1.1.22) 32.760 ms 33.625 ms 33.590 ms4 * * *5 * * *6 * * *7 * * *8 * * *9 * * *
10 * * *
11 * * *
12 * * *
13 * *^C
最后说个注意点:因为校园网是用NAT方式的,所以如果虚拟机用的是桥接方式那么设置IP地址的时候不能和校园网上已存在的IP地址一样,避免冲突。
另外附上traceroute的使用方法,用来检测网络在哪一跳上出问题还是不错的
https://jingyan.baidu.com/article/6d704a132dbf6e28da51ca6a.html
不过这里面traceroute的安装方式是Ubuntu的
也可以用yum安装:yum install -y traceroute
如果更加专业一点可以选择Wireshark这款抓包工具,功能更强大
Linux 桥接ping不通外网(特别是校园网) 解决方式及错误总结相关推荐
- Linux出现ping不通外网、xshell解决方案
① 首先ifconfig查看虚拟机ip地址,如192.168.124.0 ② 确定 vi /etc/sysconfig/network-scripts/ifcfg-ens33 文件内的ip地址是否一致 ...
- Linux中ping不通外网
在linux中ping www.baidu.com 无法ping通,可能原因是DNS没配置好 方法一: 修改vi /etc/resolv.conf 增加如下内容: nameserver 114.114 ...
- linux操作系统ping不通外网域名问题
今天早上发现linux访问不了网页,然后试着ping了一下发现能够ping通网关和本地ip地址,ping外网域名失败,但能够ping通外网ip地址.结合网络资料发现是dns发生了变化,系统无法识别域名 ...
- Linux中ping不通外网解决方案
最近在B站学习尚硅谷大数据组件hadoop,跟着流程走发现ping www.baidu.com失败, 尝试弹幕中所给的诸多办法皆无效,最后自己查找资料解决了,办法如下所给: 修改 vi /etc/re ...
- 虚拟机桥接模式下ping不通外网(baidu.com)
项目场景: 提示:这里简述项目相关背景: 1.安装虚拟机(不再赘述) ==>安装好虚拟机--选桥接模式--编辑--虚拟机网络编辑器,选择桥接模式,连接到本地电脑所用网络: 给虚拟机(Window ...
- centos ping不通百度 ping不通外网
ping不通百度 ping不通外网 这个问题会导致yum源安装软件失败 原因是 /etc/sysconfig/network-scripts/ifcfg-ens33 文件没有配置好 注意检查配置项 ...
- 虚拟机使用ifconfig命令不显示IP,ping不通外网
1.问题 (1)不显示IP (2)ping不通外网 2.原因 没有激活网卡,需要激活网卡才能连接网络,从而访问外网 3.解决办法 (1)输入以下命令编辑网卡配置文件 vi /etc/sysconf i ...
- 解决centos ping不通外网
先确认三件事: 一.ip 二.网关 三.dns 一就不说了,设置好本地ip和掩码就行了,二网关 添加默认网关,命令:route add defaule gw 192.168.1.1 这是 你用ro ...
- 如何安装linux虚拟机 配置IP地址以及网卡信息(ens33)以及ping不通外网的解决办法(绝对好使) 图文详细信息
第一步 打开WORKSTATION 创建虚拟机 如果出现不让创建的情况,请右键以管理员身份运行 点击下一步以后这里描述了虚拟机硬件的限制,我们不用管,直接默认下一步 这里我们选择 光盘位置 后点击下一 ...
最新文章
- 2_flutter_TextField(文本框),TabBar(选项卡),bottomNavigationBar(底部导航栏)
- java 成员类_Java类的五大成员之一——内部类
- 搞懂function(*args,**kwargs)
- Idea缺少Version Control 底部菜单
- Z表数据EXCEL导入
- 小米10之后摩托罗拉Edge+也要用一亿像素相机,还有3.5耳机孔
- 找单词(母函数问题)
- [stm32] 利用uc-gui封装画图和画线函数移植51上的模拟动画
- layer + ajax 弹出框
- python super().__init__()
- cr2格式缩略图不显示_cr2缩略图补丁 佳能相机RAW文件CR2原片格式缩略图显示补丁- 游侠下载站...
- PHP从入门到接到外包合同,再到放弃
- matlab length什么意思,matlab中的length什么意思?如何应用?
- 在服务系统部署MFC程序,出现DLL缺失情况的问题解决方式
- 禁用wordpress新编辑器,使用经典编辑器的方法
- 基于遥感影像的变化检测数据集
- 播放器地址抓取 php,从优酷土豆视频地址中获取swf播放器分享地址 - PHP示例代码...
- DICTATOR第三周栈与队列作业
- 腾讯地图中轻松定义多边形
- 开启硬件辅助虚拟化——Intel虚拟化之旅