修改亚马逊云服务器中的DNS解析

引言

正确情况下,我们不需要修改服务器的DNS解析。但是我的使用场景比较特殊,需要连接交易服务商的websocket端口。这个session是有时间限制的,经常需要重连。我发现似乎AWS的DNS解析响应有点不及时,具体表现为重连的时候常常会提示找不到目标地址。而另外一台在Linode的服务器就没有问题。初步怀疑是DNS解析有问题。

疑难问题

默认情况下,在 Ubuntu 18.04 上,由 netplan.io 软件包处理网络接口配置,且由启用系统解析的服务使用存根解析程序处理 DNS 查询。存根解析程序 IP 位于 /etc/resolv.conf。但是重启之后,设置会失效。

解决办法

解决办法如下(在操作之前请先创建快照,操作失误会导致连接不上主机。确认无误后请记得删除快照,否则每月会产生1美元的费用):
1.    Netplan 通常将配置文件存储在 /etc/netplan 目录中。
接下来直接在SSH客户端复制下面的代码并运行,它会创建名为 /etc/netplan/99-custom-dns.yaml 的文件。请务必将占位符 DNS 服务器 IP 地址替换为首选地址:

cat << 'EOF' | sudo tee /etc/netplan/98-custom-dns.yaml
network:
  version: 2
  ethernets:
    eth0:
      nameservers:
        addresses: [8.8.8.8, 208.67.222.222]
EOF

注意:在前面的示例中,接口指定为 eth0。确保接口名称与您的设置接口相匹配。要查看您的接口名称,请使用 ip a 命令。另外在创建99-custom-dns.yaml文件之后,请确认一下文件内容是否无误。

2.    运行以下命令:

netplan generate

3.    重启实例

4.    运行 systemd-resolve 命令以确认系统正确地提取预期的 DNS 服务器 IP 地址:

systemd-resolve --status

可以看到DNS已经生效

发表回复 0

Index