dig @my-server-ip mydomain.com 从内部工作,而不是从外部工作?

x49*_*954 2 domain-name-system bind dig

我的服务器有 2 个 ips:xxx73 和 xxx248。我可以使用 Web 浏览器通过这些 ip 访问我的站点。

{现在,从 CentOS 机器(不是我的服务器),使用终端}
如果我:

dig @x.x.x.73 mydomain.com 
dig @x.x.x.248 mydomain.com
Run Code Online (Sandbox Code Playgroud)

我得到结果:

Connection timed out; no server could be reached.
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何修复它吗?谢谢你。


更多信息:

如果我使用 ssh 登录到我的服务器并执行以下操作:

dig @x.x.x.73 mydomain.com
dig @x.x.x.248 mydomain.com
Run Code Online (Sandbox Code Playgroud)

我可以看到我的区域按预期显示:

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.1 <<>> @x.x.x.73 mydomain.com
 ; (1 server found)
 ;; global options: printcmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12757
 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

 ;; QUESTION SECTION:
 ;mydomain.com. IN A

 ;; ANSWER SECTION:
 mydomain.com. 38400 IN A x.x.x.73
 mydomain.com. 38400 IN A x.x.x.248

 ;; AUTHORITY SECTION:
 mydomain.com. 38400 IN NS ns2.mydomain.com.
 mydomain.com. 38400 IN NS ns1.mydomain.com.

 ;; ADDITIONAL SECTION:
 ns1.mydomain.com. 38400 IN A x.x.x.73
 ns2.mydomain.com. 38400 IN A x.x.x.248

 ;; Query time: 20 msec
 ;; SERVER: x.x.x.73#53(x.x.x.73)
 ;; WHEN: Sun Jan 15 11:46:30 2012
 ;; MSG SIZE rcvd: 129
Run Code Online (Sandbox Code Playgroud)
  • BIND 版本 9.3.6,Centos 5。

  • 使用 ssh 登录到我的服务器,执行 inga "dig google.com" 也显示了预期的结果。

use*_*517 6

您可能需要在防火墙中打开端口 53 以允许 DNS 流量进入您的服务器。当您使用 CentOS 5

iptables -I RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

应该让你去。如果这有效那么

service iptables save
Run Code Online (Sandbox Code Playgroud)

将保存您当前的防火墙配置。


Sve*_*ven 5

主要问题很可能是 DNS 端口 53 将在您的服务器之前的某个时间点被过滤掉(甚至在您的服务器上有防火墙规则)。

其他一些提示:在同一台机器和网络上运行两个名称服务器通常不是一个好主意。此外,首先为您的域运行 DNS 服务器是非常不寻常的。这并非不可能,但您必须确保您了解其含义。这主要意味着您的服务器必须在您选择的 TLD 中注册为该域的权威服务器。