我应该打开什么端口来使用EC2作为域名服务器(我以为我知道,但显然不是!)

我有一个EC2微型实例与亚马逊Linux运行。 我安装了绑定并为某个域设置了一个条目,如果您在该服务器上并input:

nslookup the-domain.com本地主机

但是我不能通过键入来从外部服务器获取它

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

在我的安全组中,我将其设置为允许端口53(TCP和UDP)上的传入stream量,但仍然没有任何内容。 任何人都知道我错过了什么?

检查AWS安全组

login到awspipe理控制台,点击EC2选项卡,点击左侧导航栏中的安全组。

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

有一段时间,您只能改变未分配的安全组。 现在,您可以更改分配给活动实例的组,并立即应用它们。

检查绑定configuration

默认情况下,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 

在networking可访问的接口(在这种情况下是10.1.7.152)寻找命名监听。

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

检查是否有防火墙规则可能阻止你的DNS服务器。

 sudo iptables -L -v 

如果你得到任何输出检查,看看你是否允许在这种格式的53端口input,这将是类似的东西

 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