修改亚马逊云服务器中的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已经生效