几个月前,我迁移到 Linux、PureOS,现在迁移到 Debian 10。总的来说,我很喜欢它,这是一个正确的决定,但遇到了一些令人沮丧的问题,在几种情况下网络完全失败,唯一能解决的办法就是重新启动。
- 暂停后(并不总是可重复的)
- 拔掉 USB 无线适配器后
我的行为和尝试过的事情
观察到的行为如下(对任何丢失的信息提前道歉 - 网络不是我的强项,我仍在寻找解决办法,所以我一直在做的事情可能是完全错误的!)
WiFi 似乎工作正常并连接到网络,但无法发出任何传出请求。奇怪的是,ping
失败了:
ping: sendmsg: Operation not permitted
卡是使用驱动程序的 Atheros AR9462 ath9k
(输出如下lspci
)
01:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
Subsystem: Lite-On Communications Inc AR9462 Wireless Network Adapter
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at d1000000 (64-bit, non-prefetchable) [size=512K]
Expansion ROM at d1080000 [disabled] [size=64K]
Capabilities: <access denied>
Kernel driver in use: ath9k
Kernel modules: ath9k
注意,即使卡工作正常,“访问被拒绝”仍然显示。
输出ip addr
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
6: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 30:10:b3:06:0d:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp1s0
valid_lft 86324sec preferred_lft 86324sec
inet6 2a02:c7f:607d:c200:de25:b539:67b5:e1e0/64 scope global dynamic noprefixroute
valid_lft 2917sec preferred_lft 2917sec
inet6 fdf3:9d9f:4b19:0:7164:9b0f:40fa:1f9c/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::4d60:c6e4:9b2a:a0ab/64 scope link noprefixroute
valid_lft forever preferred_lft forever
和ip route
:
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600
169.254.0.0/16 dev wlp1s0 scope link metric 1000
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.2 metric 600
忘记网络并重新连接并不能解决问题。该机器有一个硬件开关可以禁用 PCI 无线,切换它也没有帮助。续订 DHCP 租约失败,通过以下方式重新启动网络服务也失败
sudo systemctl restart NetworkManager.service
modprobe
我什至尝试结合上述步骤使用内核删除并重新注册无线驱动程序。
我确实使用 VPN 服务(nordvpn
通过终端),并且在发生连接问题后nordvpn
命令失败(在需要 Ctrl-C 的命令提示符处无响应)。kill
重新启动该nordvpn
进程并不能解决问题。
编辑:没有奇怪的规则感谢用户 AB(请参阅下面的评论),我现在意识到已iptables
会导致被ping
阻止iptables
使用默认策略更新为 DROP,并且 VPN 过程很可能是原因。如果我可以复制/修复,将进一步测试并编辑问题。
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
什么有效
因此,恢复网络连接的唯一方法就是重新启动。奇怪的是,触摸板有时在重新启动后完全没有响应,因此我需要重新启动两次。
以上内容相当令人恼火,我已经完成了解决该问题的业余尝试,因此我将非常感谢任何指导!提前致谢。
答案1
非常感谢用户 AB(请参阅评论),他指出缺乏连接是由持续的iptables
DROP
策略引起的。这似乎是 NordVPN 服务的一个错误,当机器挂起时出现问题时,NordVPN 服务不会将它们重置为默认值。按照建议在这里发布解决方案,以防这里的其他人遇到同样的问题。
出现问题时,sudo iptables -L
显示:
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
终止nordvpn
进程,然后iptables
根据情况重置规则和策略这份数字海洋指南解决了问题。
# Kill the nordvpn process
ps aux | grep nordvpn
kill -9 NORDVPND_PROCESS_NUMBER
# reset the default policies
# NB all iptables commands require root (sudo)
iptables --policy INPUT ACCEPT
iptables --policy FORWARD ACCEPT
iptables --policy OUTPUT ACCEPT
# flush the nat and mangle tables
iptables -t nat --flush
iptables -t mangle --flush
# flush all chains, and delete all non-default chains
iptables --flush
iptables -X