被阻止访问互联网?

maa*_*n81 1 updates kernel networking 22.04

我不确定......但是当我更新 Ubuntu 22.04 及其内核并重新启动时,我被阻止访问互联网;尽管我已连接并且可以访问和登录路由器的管理页面。

我的智能手机在同一个wifi下没有问题。

更新时发生了什么导致笔记本电脑被阻止的情况吗?



更新

我没有使用以太网,因为我现在没有以太网电缆,所以我现在无法发表评论。

我的 wifi 芯片基于以下命令:

$ lspci -knn | grep Net -A2
02:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:02b1] (rev 73)
    Subsystem: Intel Corporation Wireless-N 7260 [8086:4462]
    Kernel driver in use: iwlwifi
Run Code Online (Sandbox Code Playgroud)

更新2

我得到$ ping 8.8.4.4Destination Host Unreachable :

$ping 8.8.4.4
PING 8.8.4.4 (8.8.4.4) 56(84) bytes of data.
From 192.168.1.162 icmp_seq=1 Destination Host Unreachable
From 192.168.1.162 icmp_seq=2 Destination Host Unreachable
From 192.168.1.162 icmp_seq=3 Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)

我看到网络共享时传输的数据包。

另外,当使用网络共享时:

$ ip route show
default via 192.168.1.1 dev br0 proto static metric 100 linkdown 
default via 192.168.42.129 dev usb0 proto dhcp metric 100 
default via 192.168.0.1 dev wlan0 proto dhcp metric 600 
169.254.0.0/16 dev wlan0 scope link metric 1000 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.109 metric 600 
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.162 linkdown 
192.168.42.0/24 dev usb0 proto kernel scope link src 192.168.42.167 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

$ dig google.com
; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13107
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     285 IN  A   142.250.196.46

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Wed Nov 23 17:04:43 +0545 2022
;; MSG SIZE  rcvd: 55
Run Code Online (Sandbox Code Playgroud)

仅使用 Wi-Fi :

$ ip route show
default via 192.168.1.1 dev br0 proto static metric 100 linkdown 
default via 192.168.0.1 dev wlan0 proto dhcp metric 600 
169.254.0.0/16 dev wlan0 scope link metric 1000 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.109 metric 600 
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.162 linkdown 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 


$ dig google.com
; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45316
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     102 IN  A   142.250.196.46

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Wed Nov 23 17:12:16 +0545 2022
;; MSG SIZE  rcvd: 55
Run Code Online (Sandbox Code Playgroud)

我发现有细微的差别ip route show

使用 wifi 时,数据包似乎无法通过网关(?)。



更新3

使用 Live CD 时 Wifi 工作正常。

正常开机时,单独使用移动热点无线无法上网。

当前 Ubuntu 的无线设置有问题吗?



更新4

认为VirtualBox 已经安装了桥接器,并且我经常使用 VirtualBox。

Fro*_*ozz 5

maan81 做得很好,将这个问题隔离到路由表中:

  1. 使用安装盘进行测试排除了所有硬件原因 - 智能启动。
  2. 连接到无线路由器验证了 wlan0 连接配置。

两个非常精明的步骤。那么为什么无线路由器可以连接,但是上不了Internet的流量呢?

这个问题在 maan81 的路由表中变得很明显:

$ ip route show
default via 192.168.1.1 dev br0 proto static metric 100 linkdown 
default via 192.168.0.1 dev wlan0 proto dhcp metric 600 
169.254.0.0/16 dev wlan0 scope link metric 1000 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.109 metric 600 
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.162 linkdown 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 
Run Code Online (Sandbox Code Playgroud)

通过 br0 的路由(由于处于链路断开状态而无处可去)的度量值 (100) 低于 wlan0 路由 (600)。这意味着它会赢得除 192.168.0.1 子网之外的所有流量。该子网上有一个接口,因此默认路由不适用于该流量。

这里谁负责?

您应该采取的第一步是确定负责的网络管理员。在绝大多数情况下,它将是 NetworkManager。

遗憾的是,maan81 和我跳过了这一步(假设 NetworkManager 正在运行该节目),并进行了两天的欢乐追逐,因为桥 br0 在每次重新启动时都会不断弹出。

# Determine network renderer
netplan get renderer
Run Code Online (Sandbox Code Playgroud)

如果您的渲染器是NetworkManger,您可以跳至故障排除技术。

如果您的渲染器是networkd,那么您正在运行 netplan 并且所有问题都在 /etc/netplan/*.yaml 中。请参阅Canonical Netplan以获取完整文档。如果您打算坚持使用netplan,下面的一些内容可能有用,但netplan是一个太大的主题,无法在本答案的范围内处理。

maan81 确实正在运行 netplan 并选择恢复到 NetworkManager。

从 netplan 恢复到 NetworkManager

以下操作以 root 身份执行。该cat...EOF命令必须作为连续块执行。请注意,不要弄乱 .yaml 文件上的缩进 - netplan 对此类事情很挑剔。

mkdir /etc/netplan/old
mv /etc/netplan/*.yaml /etc/netplan/old
cat << 'EOF' > /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
EOF
netplan generate && netplan apply && shutdown -r now
Run Code Online (Sandbox Code Playgroud)

这最终解决了maan81的网络问题。以下是我们用来实现此解决方案的一些“工具”。

故障排除

备份您的路由表:

# Backup the route table
sudo ip route save > route.bin
# Recover the route table
sudo ip route restore < route.bin
Run Code Online (Sandbox Code Playgroud)

桥接操纵:

# take bridge br0 down
sudo ip link set br0 down
# bring up bridge br0
sudo ip link set br0 up
# delete bridge br0 (requires bridge-utils)
sudo ip link set br0 down && sudo brctl delbr br0 
Run Code Online (Sandbox Code Playgroud)

更改连接指标

# list connections
nmcli connection
# list devices
nmcli device
# set connection metric # requires link dn/up to take effect
nmcli connection modify <name> ipv4.route-metric <metric>
Run Code Online (Sandbox Code Playgroud)

暴力覆盖默认路由

# Delete the default routes
sudo ip route del default
# Recreate new route to wireless router IP
sudo ip route add default via 192.168.0.1 metric 50 
Run Code Online (Sandbox Code Playgroud)

概括:

在专业领域,运行多个默认路由被认为是非常糟糕的做法。毕竟“多重”和“默认”是矛盾的概念。

对于用户桌面,NetworkManager 会自动为您处理此问题,但并不总是正确。如果您有多个活动网络接口,它将创建多个默认路由。当这种情况发生时,该指标将决定您​​的互联网流量流向何处。