我想永久更改我的dns,最好使用init脚本。
到目前为止,这是我尝试过的所有方法:setprop net.rmnet0.dns1 8.8.8.8
(已过时)ndc resolver setifdns rmnet0 8.8.8.8 8.8.4.4
(这似乎也已经过时了)
这似乎是正确的方法:ndc resolver setnetdns <netID> <domains> <dns1> <dns2>
但是我不知道如何找到rmnet0的netID,以及如何将其放入域部分?
可能有更好的方法,例如更改某些文件或应用补丁。
最佳答案
要执行的正确命令取决于所使用的Android版本。由于这个答案很晚,我假设您不再使用5.1.1(或6.0),答案是
ndc resolver setnetdns <netId> <domains> <dns1> <dns2> ...
ndc resolver clearnetdns <netId>
ndc resolver flushnet <netId>
其中
<netId>
就是rmnet0
。可以在AFWall Wiki中的here中找到大多数版本的列表。请注意,直到下一次从WiFi切换到移动数据(我已经尝试过)之后,单独执行第一个命令才会生效。不知道随后的两个命令是否会卡住–恐怕它像DHCP一样工作,因此在下一个连接中,无论如何该值都会被覆盖。如果是这样,则您需要在每次连接更改时都运行该脚本(即,在激活移动连接时收听广播并运行该脚本)。