Ubuntu笔记本插入网线后原来的WIFI网络接口为什么不能上外网

事情是这样的,我笔记本电脑原本使用WIFI上网,但是一旦笔记本接入网线后,WIFI端口不能访问外网了。

ifconfig 查看当前主机的所有网络接口设置

vc@vc:~$ ifconfig
eth0      Link encap:以太网  硬件地址 3c:d9:2b:1e:87:f3  
          inet 地址:192.168.0.6  广播:192.168.0.255  掩码:255.255.255.0
          inet6 地址: fe80::3ed9:2bff:fe1e:87f3/64 Scope:Link
          UP broADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:4626 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:1841 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:1626263 (1.6 MB)  发送字节:247646 (247.6 KB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:1233 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:1233 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1 
          接收字节:109170 (109.1 KB)  发送字节:109170 (109.1 KB)

wlan0     Link encap:以太网  硬件地址 d0:df:9a:06:04:6e  
          inet 地址:192.168.0.13  广播:192.168.0.255  掩码:255.255.255.0
          inet6 地址: fe80::d2df:9aff:fe06:46e/64 Scope:Link
          UP broADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:2590 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:80 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:162718 (162.7 KB)  发送字节:13881 (13.8 KB)

网络配置

wlan0 :192.168.0.13 无线WIFI端口
eth0 :192.168.0.6 有限eth0端口

基于这两个端口发送ping网络请求。

eth0

eth0端口访问外网:说明可以访问外网

vc@vc:~$ ping -I eth0 baidu.com
PING baidu.com (123.125.114.144) from 192.168.0.6 eth0: 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=2 ttl=53 time=140 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=53 time=141 ms
64 bytes from 123.125.114.144: icmp_seq=4 ttl=53 time=141 ms
^C
--- baidu.com ping statistics ---
5 packets transmitted,3 received,40% packet loss,time 4002ms
rtt min/avg/max/mdev = 140.584/140.926/141.098/0.390 ms

eth0端口访问局域网主机:OK

vc@vc:~$ ping -I eth0 192.168.0.2
PING 192.168.0.2 (192.168.0.2) from 192.168.0.6 eth0: 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.389 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.182 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.200 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=64 time=0.207 ms
^C
--- 192.168.0.2 ping statistics ---
4 packets transmitted,4 received,0% packet loss,time 2998ms
rtt min/avg/max/mdev = 0.182/0.244/0.389/0.085 ms

wlan0

wlan0访问外网主机:主机不可达

vc@vc:~$ ping -I wlan0 baidu.com
PING baidu.com (123.125.114.144) from 192.168.0.13 wlan0: 56(84) bytes of data.
From 192.168.0.13 icmp_seq=1 Destination Host Unreachable
From 192.168.0.13 icmp_seq=2 Destination Host Unreachable
From 192.168.0.13 icmp_seq=3 Destination Host Unreachable
From 192.168.0.13 icmp_seq=4 Destination Host Unreachable
From 192.168.0.13 icmp_seq=5 Destination Host Unreachable
From 192.168.0.13 icmp_seq=6 Destination Host Unreachable
From 192.168.0.13 icmp_seq=8 Destination Host Unreachable
From 192.168.0.13 icmp_seq=9 Destination Host Unreachable
^C
--- baidu.com ping statistics ---
10 packets transmitted,0 received,+8 errors,100% packet loss,time 9005ms
pipe 4

wlan0端口访问本地局域网主机:可以访问但是很慢

vc@vc:~$ ping -I wlan0 192.168.0.12
PING 192.168.0.12 (192.168.0.12) from 192.168.0.13 wlan0: 56(84) bytes of data.
64 bytes from 192.168.0.12: icmp_seq=10 ttl=64 time=2.20 ms
64 bytes from 192.168.0.12: icmp_seq=11 ttl=64 time=1.12 ms
64 bytes from 192.168.0.12: icmp_seq=12 ttl=64 time=1.10 ms
64 bytes from 192.168.0.12: icmp_seq=13 ttl=64 time=1.02 ms
64 bytes from 192.168.0.12: icmp_seq=14 ttl=64 time=1.86 ms
64 bytes from 192.168.0.12: icmp_seq=15 ttl=64 time=4.29 ms
64 bytes from 192.168.0.12: icmp_seq=16 ttl=64 time=3.11 ms
64 bytes from 192.168.0.12: icmp_seq=17 ttl=64 time=1.04 ms
^C络,即网络中的所有主机。 但在一些老的软件中,
--- 192.168.0.12 ping statistics ---
17 packets transmitted,8 received,52% packet loss,time 16010ms
rtt min/avg/max/mdev = 1.023/1.973/4.299/1.118 ms

可能的原因:查询网络后发现可能是本机路由表设置的问题,因为我们wlan0和eth0都是在同一个局域网下的以太网端口,为什么只有eth0可以访问外网,而wlan0就不行呢? 查询路由表可知。

vc@vc:~$ route -n
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

发现只有eth0网络接口设置了0.0.0.0这个目的地的路由项,这个路由项描述的意思是当主机遇到目的IP不是和192.168.0.0网段处于同一网段下的数据包时,将数据包发给网关192.168.0.1, 0.0.0.0这个ip地址描述了一个IP集合。
查阅资料里一些说法如下:
络,即网络中的所有主机。 但在一些老的软件中,
1. 严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一 律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

  1. 网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机。它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。

给wlan0端口加入一条通往外网的路由项

sudo route add default gw 192.168.0.1 wlan0
vc@vc:~$ route -n
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

两个网络端口都设置了通往外网的路由项,但是现在对于wlan0,或者eth0端口发起网络链接都不能通了。是不是一个主机只能有一个工作中的网络接口。这个是路由器的设置问题还是主机的呢?
将eth0的通往外网的路由项删除看情况怎么样?

sudo route del -net 0.0.0.0 eth0

实际情况是eth0 包主机不可达错误,确实因为没有可以指导转发的路由项。

vc@vc:~$ ping -I eth0 baidu.com
PING baidu.com (123.125.114.144) from 192.168.0.6 eth0: 56(84) bytes of data.
From 192.168.0.6 icmp_seq=1 Destination Host Unreachable
From 192.168.0.6 icmp_seq=2 Destination Host Unreachable
From 192.168.0.6 icmp_seq=3 Destination Host Unreachable
^XFrom 192.168.0.6 icmp_seq=4 Destination Host Unreachable
From 192.168.0.6 icmp_seq=5 Destination Host Unreachable
From 192.168.0.6 icmp_seq=6 Destination Host Unreachable
^C
--- baidu.com ping statistics ---
7 packets transmitted,+6 errors,time 6030ms
pipe 3

wlan0网络端口一直在发送数据包却没有repley,
就算wlan0具有通往外网的路由项:
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0

vc@vc:~$ ping -I wlan0 baidu.com
PING baidu.com (220.181.57.217) from 192.168.0.13 wlan0: 56(84) bytes of data.
^C
--- baidu.com ping statistics ---
162 packets transmitted,time 161590ms

删除wlan0通往外网的路由项,增加eth0通往外网的路由项
eth0 可以连通外网了。网络恢复了原来的模样。

在有网线链接情况下你需要使用wlan0上外网只有将eth0端口参数sudo ifconfig eth0 0清除,然后wlan0端口才能有效

路由表如下:

vc@vc:~$ route -n
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

然后通过wlan0发出ping包,一开始接受包,后来就一直卡住….有大量包丢失

vc@vc:~$ ping -I wlan0 baidu.com
PING baidu.com (111.13.101.208) from 192.168.0.13 wlan0: 56(84) bytes of data.
64 bytes from 111.13.101.208: icmp_seq=1 ttl=51 time=43.4 ms
64 bytes from 111.13.101.208: icmp_seq=2 ttl=51 time=44.9 ms
64 bytes from 111.13.101.208: icmp_seq=3 ttl=51 time=43.2 ms
64 bytes from 111.13.101.208: icmp_seq=4 ttl=51 time=42.6 ms
64 bytes from 111.13.101.208: icmp_seq=5 ttl=51 time=42.2 ms
64 bytes from 111.13.101.208: icmp_seq=6 ttl=51 time=42.7 ms
64 bytes from 111.13.101.208: icmp_seq=7 ttl=51 time=43.1 ms
64 bytes from 111.13.101.208: icmp_seq=8 ttl=51 time=42.8 ms
64 bytes from 111.13.101.208: icmp_seq=9 ttl=51 time=43.6 ms
64 bytes from 111.13.101.208: icmp_seq=10 ttl=51 time=42.2 ms
64 bytes from 111.13.101.208: icmp_seq=11 ttl=51 time=42.4 ms

综上:主机如果有网线直接用网线接口,WIFI接口不能上外网。除非只有WIFI接口才配置WIFI网络接口。而且你在有有线网络情况下使用WIFI网络很慢。

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...