前端时间在研究 odoo 程序,但是该程序要在 Ubuntu 系统上运行,而缙哥哥平常使用的 ADGuard Home 和宝塔都是在 CentOS 系统上运行。秉着不浪费的原则,计划将三大程序兼容运行在同一台服务器上,但是在安装 ADGuard Home 时,提示 53 端口被占用。

Ubuntu 53 端口占用,停止 systemd-resolved 释放端口 第5张插图

validating ports: listen tcp 0.0.0.0:53: bind: address already in use

Ubuntu 53 端口占用,停止 systemd-resolved 释放端口 第6张插图

首先使用以下命令查看系统是否使用 53 端口。

sudo lsof -i :53

当前的服务器反馈结果如下:

ubuntu@dujin:~$ sudo lsof -i :53
COMMAND   PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 591 systemd-resolve   12u  IPv4  19824      0t0  UDP 127.0.0.53:domain 
systemd-r 591 systemd-resolve   13u  IPv4  19825      0t0  TCP 127.0.0.53:domain (LISTEN)

果然是 systemd-resolved 进程占用了。如果未获得任何输出,则表示未使用 53 端口。
修改下参数,不让 systemd-resolved 程序运行。

sudo vim /etc/systemd/resolved.conf

输入上方代码,使用 vim 编辑器编辑 resolved.conf 文件。

[Resolve]
DNS=223.5.5.5







DNSStubListener=no

这里将 DNS 和 DNSStubListener 前的注释符号 # 去掉,同时添加指定的 DNS 作为解析地址,并将 DNSStubListener 末尾的值 yes 改为 no 保存。

接着将/run/systemd/resolve/resolv.conf作为/etc/resolv.conf目标地址链接起来。

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

这里, -s 要创建符号链接而不是硬链接, -f 这旨在删除现有的目标文件(如果 /etc/resolv.conf 存在),最后输入 sudo reboot 重启服务器即可。重启后可以使用最上方的代码检查 53 端口是否被占用,理论上无任何反应(即不被占用)。