linux dns劫持转发,linux的dns被劫持

環境:ubuntu16.04

解說:ubuntu使用dnsmasq獲取要解析的網站ip,dnsmasq通過域名服務器獲取網站ip,並將ip緩存起來,那么就可以減少對外網域名服務器的訪問,從而可以使系統迅速地獲取ip

今天遇到dns被劫持的情況,在此記錄一下:

1.首先如何確定是否被劫持:

那么查詢一個並不存在的域名

nslookup notexit.comrrrr

如果返回了一個ip地址,說明dns被劫持了,假設此ip地址為:123.34.5.6

那么用8.8.8.8域名服務器解析一下此錯誤域名試試:

nslookup notexit.comrrrr 8.8.8.8

輸出的內容如下:

jello@jello:~$ nslookup notexit.comrrrr 8.8.8.8

Server:8.8.8.8

Address:8.8.8.8#53

** server can't find notexit.comrrrr: NXDOMAIN

提示內容說明此域名並不存在

2.那么如何處理這種情況呢?

由於ubuntu16.04使用dnsmasq對域名進行解析,那么修改dnsmasq的配置文件:

因為linux處理dns請求有個限制,在/etc/resolv.conf中只能配置三個dns地址,那么干脆在/etc/resolv.conf文件中只保留localhost為域名服務器,然后新建一個存儲外部域名服務器地址的配置文件,並將該配置文件加入到dnsmasq的配置項resolv-file中,例如:

2.1新建配置文件/etc/resolv.my.conf,往其中填入內容如下:

nameserver 8.8.8.8

nameserver 8.8.4.4

2.2往/etc/dnsmasq.conf中添加以下內容:

resolv-file=/etc/resolv.my.conf

2.3重新啟動dnsmasq

systemctl restart dnsmasq (此啟動方法總是失敗,而且還會自動往/var/run/dnsmasq/resolv.conf中添加之前的錯誤dns地址)

因此使用以下方法啟動dnsmasq:

sudo service dnsmasq start

注意:如果重啟dnsmasq超時,那么就直接打開/var/run/dnsmasq/resolv.conf

里面有解析不存在域名而得到的域名服務器地址,將存在該域名服務器地址的某行刪除即可,假設筆者的該文件內容為:

nameserver 123.34.5.6

nameserver 231.43.5.45

那么直接刪掉nameserver 123.34.5.6即可

最有效方案如下:

3.還可以直接使用其它的域名服務器地址替換掉這兩個ip,然后再重啟dnsmasq,筆者修改后/var/run/dnsmasq/resolv.conf配置文件內容如下:

nameserver 8.8.8.8

nameserver 8.8.4.4

重啟dnsmasq:

systemctl restart dnsmasq ((此啟動方法總是失敗,而且還會自動往/var/run/dnsmasq/resolv.conf中添加之前的錯誤dns地址)

因此使用以下方法啟動dnsmasq:

sudo service dnsmasq start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值