事情是这样的,我笔记本电脑原本使用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的缺省路由。
- 网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机。它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。 @H_403_1144@
给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网络很慢。