完全禁用DNS,需从多层面入手,在服务器端,可通过防火墙规则阻挡DNS端口(如用iptables禁用UDP 53端口),或停止DNS服务进程(Windows用服务管理器,Linux用systemctl),在客户端,可修改网络适配器设置,清空DNS服务器地址或设为自动获取。
怎样把DNS全禁掉?详细方法及注意事项详解
在网络环境中,DNS(域名系统)起着将域名转换为IP地址的关键作用,但在某些特殊情况下,如进行网络安全测试、特定的内网配置需求等,我们可能需要将DNS全禁掉,以下是几种常见的禁止DNS的方法及详细说明。
通过操作系统防火墙禁止DNS
(一)Windows系统
- 打开防火墙设置
进入“控制面板”,找到“系统和安全”选项,点击“Windows 防火墙”,在左侧菜单中选择“高级设置”,打开“Windows 防火墙和高级安全设置”窗口。
- 创建出站规则
- 在“高级设置”窗口中,选择“出站规则”,然后点击右侧的“新建规则”。
- 在规则类型中选择“端口”,点击“下一步”。
- 选择“TCP”和“特定本地端口”,输入“53”(DNS默认端口),点击“下一步”。
- 选择“阻止连接”,继续点击“下一步”。
- 在“规则名称”中输入一个易于识别的名称,如“禁止DNS出站”,点击“完成”。
- 创建入站规则
重复上述步骤,在“入站规则”中创建相同的规则,端口同样设置为“53”,以阻止外部设备向本机发起的DNS请求。
(二)Linux系统(以Ubuntu为例)
- 使用iptables命令
- 打开终端,输入以下命令来禁止DNS出站:
sudo iptables A OUTPUT p tcp dport 53 j REJECT sudo iptables A OUTPUT p udp dport 53 j REJECT
- 这两条命令分别阻止了TCP和UDP协议的53端口出站连接,即禁止本机向外部发起DNS请求。
- 若要禁止DNS入站,输入以下命令:
sudo iptables A INPUT p tcp dport 53 j REJECT sudo iptables A INPUT p udp dport 53 j REJECT
- 打开终端,输入以下命令来禁止DNS出站:
- 保存规则
- 使用以下命令保存iptables规则,使其在系统重启后依然有效:
sudo aptget install iptablespersistent sudo service iptablespersistent save
- 使用以下命令保存iptables规则,使其在系统重启后依然有效:
通过路由器设置禁止DNS
- 登录路由器管理界面
打开浏览器,在地址栏输入路由器的IP地址(通常为192.168.1.1或192.168.0.1等),输入用户名和密码登录路由器管理界面。
- 查找防火墙或安全设置选项
不同品牌和型号的路由器,其设置界面可能有所不同,一般在“安全设置”“防火墙设置”或“高级设置”等菜单中找到相关选项。
- 设置端口过滤
- 在防火墙设置中,找到“端口过滤”或类似的选项。
- 添加新的过滤规则,将协议设置为“TCP和UDP”,端口设置为“53”,动作选择“禁止”或“丢弃”,保存设置,这样路由器就会阻止所有通过它进行的DNS请求和响应。
操作系统 | 禁止DNS出站命令 | 禁止DNS入站命令 | 说明 |
---|---|---|---|
Windows | 通过防火墙高级设置创建出站规则,阻止53端口 | 通过防火墙高级设置创建入站规则,阻止53端口 | 在防火墙中针对特定端口进行规则设置,简单直观 |
Linux(Ubuntu) | sudo iptables A OUTPUT p tcp dport 53 j REJECT sudo iptables A OUTPUT p udp dport 53 j REJECT |
sudo iptables A INPUT p tcp dport 53 j REJECT sudo iptables A INPUT p udp dport 53 j REJECT |
使用iptables命令直接对网络数据包进行过滤,需要一定的命令行操作基础 |
相关问题与解答
(一)问题1:禁止DNS后,网络还能正常访问网站吗?
解答:禁止DNS后,由于无法将域名解析为IP地址,所以通过域名访问网站将会失败,但如果你知道网站的IP地址,可以直接在浏览器中输入IP地址来访问网站,很多网站可能会因为服务器端的配置或其他原因,即使使用IP地址也可能无法正常访问。
(二)问题2:如何恢复被禁止的DNS?
解答:
- Windows系统:在“Windows 防火墙和高级安全设置”窗口中,找到之前创建的禁止DNS的规则,右键点击并选择“删除”即可恢复DNS功能。
- Linux系统(Ubuntu):使用以下命令删除之前设置的iptables规则来恢复DNS:
sudo iptables D OUTPUT p tcp dport 53 j REJECT sudo iptables D OUTPUT p udp dport 53 j REJECT sudo iptables D INPUT p tcp dport 53 j REJECT sudo iptables D INPUT p udp dport 53 j REJECT
- 路由器:登录路由器管理界面,找到之前设置的端口过滤规则,将其删除或修改为允许状态,即可