我正在尝试为 CTF 挑战设置自己的 DNS 名称服务器。我有一个在 DigitalOcean 上运行的 Ubuntu 20.04 droplet,安装了 Bind9。在那台机器上测试时它工作正常(例如nslookup ubuntu.com [public_ip]
),但我无法从外部世界(即我的电脑)连接到它。
我已在 DigitalOcean 防火墙的 53 端口上启用了 TCP/UCP: 防火墙配置
我已禁用 ufw:
$ ufw status
Status: inactive
我已经允许 iptables 中的所有内容(基于https://www.digitalocean.com/docs/networking/firewalls/resources/troubleshooting/#finding-the-iptables-firewall-settings):
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -F
sudo ip6tables -P INPUT ACCEPT
sudo ip6tables -P OUTPUT ACCEPT
sudo ip6tables -P FORWARD ACCEPT
sudo ip6tables -F
bind9 正在监听端口:
$ netstat -tulpen | grep 53
tcp 0 0 10.106.0.2:53 0.0.0.0:* LISTEN 112 32489 2469/named
tcp 0 0 10.16.0.5:53 0.0.0.0:* LISTEN 112 32487 2469/named
tcp 0 0 [public_ip]:53 0.0.0.0:* LISTEN 112 32485 2469/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 112 32483 2469/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 112 32496 2469/named
tcp6 0 0 [redacted] :::* LISTEN 112 32495 2469/named
tcp6 0 0 [redacted] :::* LISTEN 112 32493 2469/named
tcp6 0 0 ::1:53 :::* LISTEN 112 32491 2469/named
tcp6 0 0 ::1:953 :::* LISTEN 112 32497 2469/named
udp 0 0 10.106.0.2:53 0.0.0.0:* 112 32488 2469/named
udp 0 0 10.16.0.5:53 0.0.0.0:* 112 32486 2469/named
udp 0 0 [public_ip]:53 0.0.0.0:* 112 32484 2469/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 112 32482 2469/named
udp6 0 0 ::1:53 :::* 112 32490 2469/named
udp6 0 0 [redacted] :::* 112 32492 2469/named
udp6 0 0 [redacted] :::* 112 32494 2469/named
我用端口 54 做了测试。我在 DigitalOcean 防火墙中打开,启动nc -ul 54
droplet 并连接成功地在nc -u [public_ip] 54
我的计算机上。然后我停下来named
并尝试在端口 53 上执行相同操作,但无法连接。
还有什么可能阻塞了端口?
编辑:Linode 上也存在同样的问题,这表明该问题并非 DigitalOcean 所特有。
答案1
几天后我意识到这是因为我的 VPN。如果我关闭它,我就可以连接nc
或dig
(如果named
正在运行)。我不确定为什么会这样,但它暂时解决了这个问题。