简短的摘要(问题解决后添加)
显然,一些无线 USB 网络适配器驱动程序与我的 Linux 操作系统不兼容,最后我通过购买无线网桥 ~= 接收器 ~= 无线接入点解决了这个问题。现在,这是实际问题:
问题:
如果宽带路由器为计算机提供了 IP 地址,并且防火墙已关闭,但仍然无法上网,甚至无法 ping 通路由器,那么问题可能出在哪里?我该如何解决?
背景:
我无法通过 [无线网络 USB 卡] 从我的台式机连接到 [我刚搬到的公寓里的无线宽带路由器]。
路由器为我提供了一个 IP 地址(首先它要求我指定一个 WSP PIN 码,我照做了),但虽然我获得了 IP 地址,但我无法访问互联网:我无法解析任何主机名,我甚至无法 ping 宽带路由器,即为我提供 IP 地址的那台机器(!)。
更多信息:
下面有很多希望有用的信息。
我的笔记本电脑一直通过 DHCP 配置,可以毫无问题地连接到宽带路由器。只有我的台式机不能工作。它最近配置了桥接网络。
这是我的台式机连接到宽带路由器后的接口。wlan0
(列表末尾)是网络 USB 卡。
$ ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 20:cf:30:4c:2f:02 brd ff:ff:ff:ff:ff:ff
inet6 fe80::22cf:30ff:fe4c:2f02/64 scope link
valid_lft forever preferred_lft forever
(Uninteresting stuff related to KVM, VMWare, VirtualBox:
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 6e:84:3c:57:95:4a brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
5: vmnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:50:56:c0:00:01 brd ff:ff:ff:ff:ff:ff
inet 172.16.228.1/24 brd 172.16.228.255 scope global vmnet1
inet6 fe80::250:56ff:fec0:1/64 scope link
valid_lft forever preferred_lft forever
6: vmnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:50:56:c0:00:08 brd ff:ff:ff:ff:ff:ff
inet 192.168.133.1/24 brd 192.168.133.255 scope global vmnet8
inet6 fe80::250:56ff:fec0:8/64 scope link
valid_lft forever preferred_lft forever
END uninteresting stuff)
9: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 44:94:fc:29:59:6e brd ff:ff:ff:ff:ff:ff
inet 192.168.100.6/24 brd 192.168.100.255 scope global wlan0 <-- it has an IP addr (!)
inet6 fe80::4694:fcff:fe29:596e/64 scope link
valid_lft forever preferred_lft forever
以下是路由表:(192.168.100.*是宽带路由器的网络)
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.100.1 0.0.0.0 UG 0 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 wlan0
172.16.228.0 * 255.255.255.0 U 0 0 0 vmnet1
192.168.100.0 * 255.255.255.0 U 2 0 0 wlan0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
192.168.133.0 * 255.255.255.0 U 0 0 0 vmnet8
这是 iptables 配置:(它被禁用了,对吗?)
$ sudo iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
当我 ping 网关(192.168.100.1)时,Googleping
显示:
$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
From 192.168.100.6 icmp_seq=3 Destination Host Unreachable
From 192.168.100.6 icmp_seq=5 Destination Host Unreachable
From 192.168.100.6 icmp_seq=6 Destination Host Unreachable
$ ping google.com
ping: unknown host google.com
这怎么可能?192.168.100.1 已经给了我一个 IP 地址,那么它就不能“无法访问”吗?我可以从笔记本电脑 ping 网关,所以它确实会回复 ping 请求。
这是 resolv.conf:(为什么它指定 localhost???? — 我猜这是 Google 无法 ping 通的原因(部分原因)?)
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
过去,我在 /etc/network/interfaces 中配置了桥接网络,但我已将其注释掉,并重新启动了整个计算机。以下是该文件中未注释掉的行:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
我正在使用 Kubuntu 12.04 LTS。网络管理器显示 wlan0 的状态为 CONNECTED。
更新:以下是 的输出lsusb
:
$ lsusb
Bus 004 Device 004: ID 05f3:0081 PI Engineering, Inc. Kinesis Integrated Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 09da:0006 A4 Tech Co., Ltd Optical Mouse WOP-35 / Trust 450L Optical Mouse
Bus 004 Device 005: ID 05f3:0007 PI Engineering, Inc. Kinesis Advantage PRO MPC/USB Keyboard
Bus 002 Device 004: ID 0846:9021 NetGear, Inc.
以下是lsusb -v
仅适用于 NetGear 设备的输出:(对于所有设备,lsusb -v
表示“无法打开设备,部分信息将会丢失”)
Bus 002 Device 004: ID 0846:9021 NetGear, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0846 NetGear, Inc.
idProduct 0x9021
bcdDevice 2.00
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 46
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
答案1
这是 resolv.conf:(为什么它指定 localhost???? — 我猜这是 Google 无法 ping 通的原因(部分原因)?)
你说的没错。出于某种原因,你的 DHCP (?) 提供的是 localhost 而不是有效的 DNS,或者可能是网络管理器设置为这样做。我会转到网络管理器配置工具,右键单击用户名旁边的网络小程序,选择网络设置,查找无线设备,单击角落中的选项...按钮。转到 ipv4 选项卡并检查 DNS 条目。如果方法显示“自动 (DHCP)”和 DNS 字段,我会责怪 DHCP 服务器损坏。将方法更改为“仅自动 (DHCP) 地址”并使用其他 DNS 服务器(Google、OpenDNS 等)。
如果值确实是 127.0.0.1,那么也许有人想和你开一个不好笑的玩笑,删除该条目,将你的方法设置为自动,然后就可以开始了。
答案2
无线 USB 网络适配器显然需要仅适用于 MS Windows 的驱动程序。因此我可以尝试使用类似NDIS包装器或者购买另一个适用于 Linux/Ubuntu 的 USB 适配器。
以下是关于购买带有支持Linux的网卡的计算机的信息:https://help.ubuntu.com/community/WifiDocs/WirelessCardsSupported
以下是关于如何为 Netgear 安装 Windows 驱动程序的讨论/信息N300 无线迷你 USB 适配器在 Ubuntu 上: http://ubuntuforums.org/showthread.php?t=1830237
但是,遵循所有这些说明似乎需要几天时间(??)并且需要访问 Windows 计算机并在中找到一些驱动程序C:\Windows\system32??\...somewhere...\...
,或者需要通过旧的损坏链接下载 Windows 驱动程序文件。
我想我会买一个与 Ubuntu 兼容的 USB 网络适配器。以下是有关一些可能有用的驱动程序的博客文章链接:
https://www.google.se/search?q=best+usb+wireless+adapter+for+ubuntu+12.04
更新 2013-09-30:我买了一个无线网桥 ~= 无线接入点 ~= 接收器,并将其无线连接到路由器。然后我将另一台路由器连接到这个无线网桥,现在我有了自己的私人网络,一切都运行正常 :-)
下次我再也不会购买仅列出“Windows”的无线适配器了:-(