Rom*_*lia 5 linux ubuntu dns bind
我正在实现自定义 DNS 服务器,但当我尝试使用它时,它与正在使用的端口 53 发生冲突。更改resolved.config 文件没有帮助。我的resolved.conf 文件如下所示:
[Resolve]
DNS=127.0.0.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
Run Code Online (Sandbox Code Playgroud)
我的 /etc/resolv.conf 文件如下所示:
nameserver 127.0.0.1
nameserver 192.168.1.1
search lan1
Run Code Online (Sandbox Code Playgroud)
端口 53 仍然用于解析 dns...
$ sudo lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE
systemd-r 636 systemd-resolve 12u IPv4 22828
0t0 UDP 127.0.0.53:domain
systemd-r 636 systemd-resolve 13u IPv4 22829 0t0 TCP
127.0.0.53:domain (LISTEN)
Run Code Online (Sandbox Code Playgroud)
当我运行自定义 Dns 服务器时出现错误,
File "/usr/lib/python3.8/socketserver.py", line 466, in
server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何建议
小智 5
如何在 Ubuntu 上阻止 systemd-resolved 使用端口 53
您可以在上面的链接中找到一个很棒的教程。下面我将记下教程中的内容以提高可见性。
以 root 身份,使用您选择的文本编辑器编辑/etc/systemd/resolved.conf 。
现在,您需要取消注释(删除 #)DNS=和DNSStubListener=行。
现在,您需要将DNS=值更改为您选择的 DNS 服务器,然后将DNSStubListener=的值从yes更改为no
现在,保存更改并退出编辑器。
接下来,您需要为/run/systemd/resolve/resolv.conf创建一个符号链接,并将/etc/resolv.conf作为目标。
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
您会注意到-s,它使链接成为符号链接而不是硬链接,而-f则删除任何现有的目标文件。
现在,您应该能够重新启动系统并能够使用端口 53
您可以通过运行以下命令来检查这一点:
sudo lsof -i :53
Run Code Online (Sandbox Code Playgroud)
如果您没有看到任何输出,则端口 53应该打开。
要撤消此操作,您需要编辑/etc/systemd/resolved.conf并将设置恢复到原来的状态。
将#添加回DNS=行前面,并将DNSStubListener=更改回no。
然后您可以通过键入以下内容删除该符号链接:
sudo rm /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
然后重新启动。
我真的希望这有帮助!查看链接以获得更好的视觉效果哈哈。
归档时间: |
|
查看次数: |
14815 次 |
最近记录: |