Skip to main content

🪄UbuntuServer的sudo命令响应很慢原因和解决办法

·48 words·1 min
Yalois
Author
Yalois
freedom

问题
#

今天学习的反序列化视频里有个靶场,因为都放在WSL里会很乱,所以我决定专门开一个Linux虚拟机用来搭建靶场。于是我下载了Ubuntu Server镜像来安装,安装之后我换apt源的时候会等待好几秒再执行,非常的难受,其他的Linux没有这种问题。起初我以为是配置给低了,分配了更多的内存和处理器,但是发现并没有任何作用,然后我偶然间发现在vim同一个文件的时候,加上sudo和不加sudo是不一样的。加上sudo的时候需要等好多秒,不加就是立马响应,然后我上网查了一下。

原因是sudo被设计的时候允许/etc/sudoers中的成员不在本机上。sudo的时候会先从网络上寻找可能的sudoer,然后再从本地找。正是在这网络寻找的这一步产生了延迟时间。

于是用Wireshark检测了虚拟网卡的数据包,果然是是在向ubuntuserver1发送请求。

image-20240717193941521

解决办法
#

在/etc/hosts里面添加 “127.0.0.1 ubuntuserver1”

其中ubuntuserver1是Server’name去除下划线的内容。

为什么会出现问题?
#

看到原来的/etc/hosts文件我似乎明白了

原来
127.0.0.1 localhost
127.0.1.1 ubuntu_server_1
...

新增后
127.0.0.1 localhost
127.0.1.1 ubuntu_server_1
127.0.0.1 ubuntuserver1
...

安装系统的时候设置的 Server’name 是:ubuntu_server_1。系统是添加了ubuntu_server_1本地回环地址的。

在sudo发送请求的时候忽略了我的下划线,成为了ubuntuserver1,导致了问题的发生。所以我需要把ubuntuserver1设成本地回环地址。

如果我的 Server’name 当时没有加下划线,就不会有延迟了。

127.0.0.1和127.0.1.1区别(GPT提供答案)

在计算机网络中,127.0.0.1和127.0.1.1都是本地回环地址,用于在单台计算机上进行网络通信。它们之间的主要区别在于,127.0.0.1是标准的本地回环地址,通常用于在同一台计算机上进行通信,而127.0.1.1通常用于一些特殊的配置,例如在某些Linux系统上用于标识本地主机。

总的来说,通常情况下,大多数应用程序和系统都使用127.0.0.1作为本地回环地址。127.0.1.1通常在特定的系统配置中才会被使用,例如在某些Linux发行版中作为本地主机的标识。

参考URL