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 的占用情况。如果有其他相关问题,欢迎提出。