Linux 和 Unix 用户有时会面临各种网络问题。这些问题中的许多问题都在此处和其他一些故障排除论坛上进行了介绍,但它们非常具体,并包含许多其他技术信息,有时很难理解错误系统行为的要点和真正原因。
通过提出这个问题,我的目的是创建一个社区 wiki页面,它可以概括我们的网络故障排除和调试经验。我希望 Linux 和 Unix 用户可以使用此页面更容易地识别和解决(“分而治之”)他们的网络问题。
此页面的父页面应该是 诊断问题的最佳实践。但在这里我们应该专注于从用户空间和内核空间解决网络问题。
我想,如果你:
它非常适合这个主题。
我将从分享 varios诊断工具的链接和12 年前的简单教程开始。此外,archlinux 教程似乎有关于我们主题的实际信息。为了深入了解 linux 网络,我们绝对需要访问Linux Networking-HOWTO。
systemd-resolved
出于故障排除目的,您将如何查找 使用的 DNS 服务器?
通常我可以使用dig
和测试/etc/resolv.conf
. (或窗口 - ipconfig /all
+ nslookup
)。但是当 resolv.conf 仅指向环回地址上的本地解析器守护程序时,这种方法不起作用。systemd-resolved下用什么方法,显示它使用的DNS服务器?
(unbound
有我可以查看的配置文件。 dnsmasq
也可以,但我不确定是否可以在没有配置文件的情况下动态添加服务器。即使是 NetworkManager,现在也有nmcli
,我看到您可以查询nmcli d show wlan0
以显示接口的 DNS 配置。 )
作为背景,我刚刚用现代硬件构建了一台新机器,包括:
鉴于此,我尝试在 SSD 上安装各种版本的 Linux,几乎每次都失败。我尝试从 USB 拇指驱动器安装 Arch、Debian stable、Debian sid 和 Ubuntu 12.10,但是当 BIOS 看到 USB 驱动器并开始从它启动时,一旦操作系统尝试枚举 USB 设备,我就失去了所有 USB 功能(包括引导设备)。
最后我刻录了一张 DVD 并将 Ubuntu 12.10 安装到 SSD 上。应该注意的是,我的 USB 键盘(和鼠标)在 American Megatrends UEFI/BIOS 中工作正常。即使我在 Live Ubuntu DVD 上的预安装菜单中,键盘也能正常工作。
一旦 Linux 启动(Live DVD 或 SSD),我就失去了所有 USB 功能,只能使用 PS/2 键盘导航操作系统。
我在 dmesg/syslog 中看到的是关于“ failed to load microcode amd_ucode/microcode_amd_fam15h.bin
”的几行,我可以看到 USB 设备初始化失败。
如果我这样做,lsusb
我可以看到所有 USB 主机控制器,但看不到任何设备。做一个lspci
向我展示了我期望的所有硬件。并且做一个lsmod
我没有看到加载的任何 USB …
我尝试按照本教程在 ubuntu 13.04 上使用 LVM 和 dm-crypt 设置 TRIM:
请参阅下面有关我的配置和测试程序的说明。
如果 TRIM 工作正常,是否有可靠的测试?
是我的测试程序错误还是我的 TRIM 不起作用?
如果它不起作用:我的设置有什么问题?
如何为我的设置调试 TRIM 并使 TRIM 工作?
这是我的配置:
cat /etc/crypttab
sda3_crypt UUID=[...] none luks,discard
Run Code Online (Sandbox Code Playgroud)
和
cat /etc/lvm/lvm.conf
# [...]
devices {
# [ ... ]
issue_discards = 1
# [ ... ]
}
# [...]
Run Code Online (Sandbox Code Playgroud)
SSD 是三星 840 Pro。
为了测试我刚刚做的设置sudo fstrim -v /
,结果
/: [...] bytes were trimmed
再次执行此操作的结果/: 0 bytes were trimmed
似乎是有道理的,并表明 TRIM 似乎有效。
但是后来我做了这个测试:
dd …
我准备了两个相同的 USB 记忆棒(TrekStor 16GB),其中带有c't bankix 映像。
使用GParted准备:
通过 将图像加载到棒上usb-creator-kde
。
所以我对两根棍子都做了相同的程序,但是一个引导而另一个崩溃并显示错误消息:
(initramfs) mount: mounting /dev/loop0 on //filesystem.squashfs failed: No such device
Can not mount /dev/loop0 (/cdrom/casper/filesystem.squashfs) on //filesystem.squashfs
Run Code Online (Sandbox Code Playgroud)
然后我尝试通过sudo cmp /dev/sdb /dev/sdc
. 这导致:
/dev/sdb /dev/sdc differ: byte 441, line 5
Run Code Online (Sandbox Code Playgroud)
这里有什么问题,我该如何解决?
我们的系统有点迟钝。top
报告控制台套件守护进程占用 18-30% 的 CPU 和大约 50% 的内存。只有两个用户登录,一个在 X 上,一个通过 ssh。
任何想法如何解决这个问题?
运行 Debian。uname
报告:
Linux Bulls5 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686 GNU/Linux
前几行top
:
9456 root 20 0 2006m 1.8g 2020 S 19 50.2 1788:50 console-kit-dae
1501 messageb 20 0 425m 397m 796 S 0 10.6 230:20.64 dbus-daemon
3799 tomcat6 20 0 932m 450m 7208 S 0 12.0 106:36.35 java
24383 postgres 20 0 48312 7956 5640 S 0 0.2 0:00.44 …
Run Code Online (Sandbox Code Playgroud) 当我的 Ubuntu 14.04 机器从休眠状态唤醒时,有时网络被禁用并且启用它不会使其再次工作。跑步
sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)
仅靠它并不能解决问题。但
sudo ifconfig wlan0 down && sudo ifconfig wlan0 up
Run Code Online (Sandbox Code Playgroud)
倾向于解决 wlan 连接的问题。
但是,除非我重新启动,否则它无法通过 3G 或 GPRS 启动 PPP 连接。重新启动用作调制解调器的智能手机在这里没有帮助。
如何在不重新启动的情况下重新启动所有网络模块?
更多信息:
本机通过 USB 电缆连接到智能手机。我正在使用网络管理器和 nm-applet 来启动连接。
这是一个长期存在的问题,在早期版本中它已经是一个问题。
我不会输入休眠后网络被禁用的原因。我相信在某处有关于如何处理这个错误的信息。然而,这对我来说并不是什么大问题。
sudo lsmod | grep ppp
ppp_deflate 12950 0
ppp_async 17413 1
crc_ccitt 12707 1 ppp_async
sudo lsmod | grep usb
usb_serial_simple 17386 2
usbserial 45141 6 usb_serial_simple
usb_storage 66545 1 uas
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个实时发行版(实时 CD 或类似的),它 - 默认情况下 -sshd
在启动时运行。
我想检查我的笔记本电脑的显卡坏了的组件(更换卡没有解决问题)。
系统似乎正确启动到 Knoppix 6(并且在没有屏幕的情况下键入命令时我可以让它定期关闭)但我需要的是一个实时分发(CD/DVD/USB),我可以启动并登录(通过 ssh)通过网络检查 CPU 和内存是否正常以及新显卡是否也正常。
有哪些选择?
在过去一个月左右的时间里,我一直在尝试让 jetbrains-toolbox 工作。它曾经可以工作(也是我安装 IntelliJ IDEA 和 Gogland 的方式。)当我去更新 IDEA 时
我目前正在使用 Arch。这是我尝试过的事情。
设置文件 (~/local/share/JetBrains/Toolbox/.settings.json),即使在被第 5 项操作清除后,也能够重新生成,所以我假设我的文件系统上某处存在某些东西不走了。这就是我认为可能导致问题的原因。我已经通过查看 Thunar 的垃圾文件夹验证了设置文件已被删除。但是,从 ripgrep 搜索我的电子邮件地址(包含在设置文件中)并没有发现任何相关信息。
这些是我运行的命令:
cd ~/
sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt
cd /usr/
sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt
唯一相关的结果是:
.local/share/JetBrains/Toolbox/.settings.json: "email": "MY_EMAIL_HERE",
.local/share/Trash/files/Toolbox/.settings.json: "email": "MY_EMAIL_HERE",
我并不完全精通 Linux,但我一直在寻求帮助。如果您有任何建议,请耐心等待我。我可能有点傻。
当我从终端运行它时,这是显示的消息:
john@john ~/D/jetbrains-toolbox-1.2.2314> ./jetbrains-toolbox
[0415/155414:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale
这是一条偶尔会 …
我有 70 台装有 CentOS 7.2 和 chrony 版本 2.1.1 的机器,与我的 NTP 服务器协议 v3 完美同步。
最近我添加了 30 台机器 CentOS 7.4 and chrony version 3.1
,但是这 30 台机器拒绝同步,我遵循了所有的故障排除程序,但我完全不知道如何解决这个问题。命令输出:
chronyc tracking
Reference ID : 00000000 ()
Stratum : 0
Ref time (UTC) : Thu Jan 01 00:00:00 1970
System time : 0.000000013 seconds fast of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 11.390 ppm fast
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay …
Run Code Online (Sandbox Code Playgroud)