我应该打开哪些端口才能将 EC2 用作名称服务器(我以为我知道,但显然不知道!)

我应该打开哪些端口才能将 EC2 用作名称服务器(我以为我知道,但显然不知道!)

我有一个在 Amazon Linux 上运行的 EC2 微型实例。我安装了 bind 并为某个域设置了一个条目,如果您在该服务器上输入以下内容,它就可以正常工作:

nslookup the-domain.com 本地主机

但我无法通过输入从外部服务器访问它

nslookup the-domain.com 10-10-10-10.compute-1.amazonaws.com

在我的安全组中,我将其设置为允许端口 53 上的传入流量(TCP 和 UDP),但仍然没有任何结果。有人知道我遗漏了什么吗?

答案1

检查 AWS 安全组

登录aws管理控制台,点击EC2选项卡,点击左侧导航部分中的安全组。

安全组是您管理实例的虚拟防火墙的地方。与实例上运行的操作系统无关。

以前,您只能更改未分配的安全组。现在,您可以对分配给活动实例的安全组进行更改,并且更改将立即生效。

检查绑定配置

默认情况下,bind 仅监听 127.0.0.1。请确保您正在监听所有接口。编辑 /etc/named.conf,将相应的行更改为:

listen-on port 53 { any; };

然后重新启动服务。

service named restart

确认命名正在监听“一切”,像这样使用 netstat。

[root@...]# netstat -nlp | grep named
tcp        0      0 10.1.7.152:53            0.0.0.0:*                   LISTEN      8664/named
tcp        0      0 127.0.0.1:53             0.0.0.0:*                   LISTEN      8664/named
tcp        0      0 127.0.0.1:953            0.0.0.0:*                   LISTEN      8664/named
tcp        0      0 ::1:953                  :::*                        LISTEN      8664/named
udp        0      0 10.1.7.152:53            0.0.0.0:*                               8664/named
udp        0      0 127.0.0.1:53             0.0.0.0:*                               8664/named

查找网络可访问接口上的命名监听(在本例中为 10.1.7.152)。

答案2

检查可能阻塞端口的防火墙。

答案3

检查是否有防火墙规则阻止了您的 DNS 服务器。

sudo iptables -L -v

如果你得到任何输出检查看看你是否允许以这种格式在端口 53 上输入它将是这样的

102 11468 ACCEPT   udp  --  any  any   anywhere           anywhere       udp dpt:domain
 20  1013 ACCEPT   tcp  --  any  any   anywhere           anywhere       tcp dpt:domain

如果你需要启用端口 53,那么你可以这样做

sudo /sbin/iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT
sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 53 -j ACCEPT

相关内容