linux 53端口占用的原因

解析 Linux 下 53 端口占用的现象

在 Linux 系统中,端口 53 往往是与域名解析服务(DNS)相关的。本文将详细介绍一个与端口 53 相关的情景,以及如何使用命令行工具来解析和理解这一现象。

现象

用户可能会遇到类似以下的信息:

systemd-r 20245 systemd-resolve   13u  IPv4 216305      0t0  UDP localhost:domain 
systemd-r 20245 systemd-resolve   14u  IPv4 216306      0t0  TCP localhost:domain (LISTEN)

这两行输出显示了一个名为 systemd-resolve 的进程监听本地的 DNS 端口,其中一个是通过 UDP 协议,另一个是通过 TCP 协议。

分析

UDP 连接

第一行的 UDP 连接解释如下:

  • 进程 systemd-resolve 的文件描述符(File Descriptor)为 13。
  • 这是一个 UDP 协议的连接。
  • 该连接是 IPv4 地址(IPv4 216305)。
  • 该连接位于 localhost 上的 DNS 端口。

TCP 监听

第二行的 TCP 监听解释如下:

  • 进程 systemd-resolve 的文件描述符为 14。
  • 这是一个 TCP 协议的监听(LISTEN)。
  • 该监听也是在 IPv4 地址上(IPv4 216306)。
  • 该监听位于 localhost 上的 DNS 端口。

服务解释

这些信息表明了系统中正在运行 DNS 解析服务。具体来说,systemd-resolve 进程通过 UDP 和 TCP 协议监听 localhost 的 DNS 端口。UDP 通常用于较简单的 DNS 查询,而 TCP 则用于处理较大的数据传输或复杂的查询。

解决方案

查看端口占用情况,看看 53 端口是不是被 systemd-resolved 占用了。

sudo netstat -nultp
如果 53 端口确定被 systemd-resolved 占用了,则可以根据下面给出的方法解决。

1、先停用 systemd-resolved 服务。

sudo systemctl stop systemd-resolved
2、编辑 /etc/systemd/resolved.conf 文件,按 “i” 键进入编辑模式。

sudo vi /etc/systemd/resolved.conf
3、换下面说明更改,然后按一下 “esc” 键,再输入 “:wq”(不要输入引号),回车保存即可。

[Resolve]
DNS=223.5.5.5         #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
DNSStubListener=no    #取消注释,把yes改为no
#ReadEtcHosts=yes

4、最后运行下面命令即可。

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

结论

端口 53 的占用通常是 DNS 服务的正常表现,负责解析域名为相应的 IP 地址。在 Linux 系统中,systemd-resolve 进程负责管理 DNS 解析任务。如果系统中有其他 DNS 服务(如 BIND 或 dnsmasq),它们也可能占用端口 53。

通过理解这些信息,用户可以更好地监控系统上的 DNS 活动,并在需要时进行适当的配置或调整。

希望这篇博文帮助你更深入地了解 Linux 下端口 53 的占用情况。如果有其他相关问题,欢迎提出。

posted @ 2024-01-25 21:18  lyxlucky  阅读(2075)  评论(0编辑  收藏  举报