理想情况下,我正在寻找通过终端模拟器运行的命令,类似于
ipconfig /flushdns
在Windows计算机上。
Linux的版本是什么?
#1 楼
在典型的Linux系统上,运行/etc/init.d/nscd restart
可清除缓存,但是至少我的ROM不使用nscd缓存DNS。您可以检查您是否这样做,但我对此表示怀疑。我已经看到一些建议,清除浏览器缓存也将清除DNS缓存,但是一种可靠的方法是进行硬重启(关机,取出电池30秒钟,重新连接电池并重新启动)。评论
我所有的搜索都提出了“硬重启”建议。
–Chahk
2011年9月1日14:03在
我之所以投票,是因为答案需要root用户和/或假定对大多数Android用户来说不现实的shell访问。其余的答案并不能解决我的问题。我也相信马修·里德(Matthew Read)应该重新考虑锁定问题,因为这绝对不是“完成的交易”。 DNS非常复杂,这里还没有Android帐户的人会提供更多合理的答案,我就是一个例子。 FWIW我确实有10多个声誉,但仍然无法回答问题。
– PJ Brunet
2015年8月11日15:51
@PJBrunet准确地说,您有1个代表和100个代表的协会奖金,由于您在此网站上尚未获得奖励,所以这不计。请参阅什么是“受保护的”问题?更多细节。至于问题,我现在将其取消保护。
–onik
15年8月11日在15:54
#2 楼
默认情况下,地址缓存600秒(10分钟)。失败的查询将被缓存10秒钟。从我所看到的一切来看,没有内置任何刷新缓存的内容。这显然是Android中已报告的错误,因为它存储DNS缓存的方式。清除浏览器缓存不会触及DNS,“硬重置”会清除它,因为它只是超时。我们可以问一下需要清除DNS缓存的根本原因吗?也许还有其他解决方案被遗漏了,因为我们没有考虑更大的前景。
评论
不确定OP,但我有一个用例,其中我的家庭网络服务于server.home.mydomain.com之类的地址,但是我的ISP解析* .mydomain.com(对于任何“ *”值,尚未映射)如果我的手机是3G / 4G,请访问www.mydomain.com,因此有时我无法访问我的家庭网络,直到缓存超时。
– TomG
2012年8月25日在1:25
看起来强制性10分钟缓存已在JB中修复-请参阅此提交。对于较早的版本,可以通过build.prop中的networkaddress.cache.ttl和networkaddress.cache.negative.ttl来调整Java缓存行为。
–谢尔盖·弗拉索夫(Sergey Vlasov)
2013年6月2日18:19
首先,即使在4.3版本中,仍然存在一些(也许有所不同)DNS问题-wifi上的平板电脑可能无法获得Linux和Windows机器(在托管wifi的网络上)可以解析的名称的IP地址。
–乔恩·谢米兹(Jon Shemitz)
2014年2月25日在21:50
#3 楼
在Android中执行此操作的唯一方法是进行硬重启。必要的命令行工具通常不可用,但是在我的测试中,硬重启始终可以帮助我解决问题(Galaxy Nexus和HTC Desire,各种ROM)。这很痛苦,但是比10分钟的缓存超时要快。
评论
如何执行此操作?
–史蒂夫·罗宾斯(Steve Robbins)
2011年11月29日,下午5:20
-按住电源按钮-选择“关闭电源”-允许手机完全关闭-取出电池并等待30秒-退回电池-重新打开手机电源。根据我的经验,没有必要卸下电池,但是有些人报告说,如果您错过此步骤,则无法使用。
–马丁
2011年11月29日8:27
拆电池是无稽之谈。重新启动工程。我怀疑这样做的额外时间只会使某些外部DNS缓存超时。
–马特西亚斯·乌利希斯(Matthias Urlichs)
16-09-27在19:52
#4 楼
还有Internet Booster之类的应用程序,它们承诺“清除DNS缓存”(以及其他功能)。我没有亲自尝试过,而且似乎没有办法做到这一点(只有一个“优化”按钮“应用了改进”);而且其效果可能在设备之间有所不同(例如应用程序的说明),但它可能比重启更好。顺便说一句:虽然没有提到root是必需的,但仍可能需要。Google Play上列出了几个“类似的应用”,但请注意,其中大多数都包含Airpush广告和/或过多的权限,这就是为什么我在这里没有给它们命名的原因。
我在MadPC上找到了另一个可能的解决方案(未经我自己测试),似乎在引用user8522的答案之前就说过:
最后一个选择,但对用户本身来说是最密集的选择,除非他们只想等待更新:让用户进入设置->应用程序->网络位置->清除数据
另一个简短的操作方法提到了刷新DNS的另一种简单方法(再次,我自己也没有对此进行测试):只需切换到飞行模式(哎呀,没有网络?)然后再返回(啊,在那里)是)应该做的把戏。听起来可能很愚蠢,但我可以想象进入飞行模式时,Android会执行与
/etc/init.d/networking stop
类似的操作,该操作具有DNS刷新的副作用。dtumaykin提供了一个非常简单的解决方案下面的评论:简单地切换到飞行模式可能已经做到了(当然,网络的副作用会持续几秒钟;)尽管在某些设备上可能不起作用,但值得尝试:无需额外安装,甚至可以通过n00bs轻松执行。
如果有人尝试了其中一种解决方案,肯定欢迎(或相反)确认:)
评论
有外壳程序命令ndc resolver flushdefaultif和ndc resolver flushif wlan0;他们需要root。还有NetworkManagementService.flushDefaultDnsCache()方法,该方法仅在JB之前需要CHANGE_NETWORK_STATE,但是随后被锁定为CONNECTIVITY_INTERNAL。因此,显然存在一种无需root即可清除DNS缓存的黑客方式(在build.prop调整后杀死了Java级别的缓存之后),但它在JB中不起作用。
–谢尔盖·弗拉索夫(Sergey Vlasov)
2013年6月2日19:20
感谢您提供其他信息,@SergeyVlasov!您是否知道您提到的任何方法是否由我的答案中最后提到的两个建议的解决方案触发(或者它们是否起作用,但原因不同)?
– Izzy♦
2013年6月2日19:37
飞行模式的开关对我有效。三星Galaxy S4 Mini和CM12.1。
– dtumaykin
15年7月4日在12:45
我无法回答,因为Matthew Read锁定了问题。请为我打他一巴掌:-)硬重启对我不起作用,飞行模式不起作用,清除“位置”(按照答案)也不起作用,等待时间也不起作用。过去,我只是通过关闭浏览器标签并打开一个新标签来解决此问题。有一个“没有根”的8.8.8.8应用程序(Google DNS),但是我无法授予VPN访问权限,因为我已经有一个付费的VPN应用程序。对我来说,解决方案是更改VPN的“虚拟位置”设置,或者解决方案是停止并启动我的VPN。假设我的VPN有自己的DNS缓存。
– PJ Brunet
15年8月9日在21:20
@PJBrunet我不会拍mod(太危险了,他可能会关闭我的帐户;),此外,我的手臂还不够长,无法伸到国外。但是获得10个代表并不是很难(问一个获得2个投票的好问题,或者写一个获得1个投票的答案);这样,回到这里写下您的答案:)感谢您的分享!
– Izzy♦
2015年8月10日8:43
#5 楼
在现代版本的Android中,可以选择清除chrome:// net-internals /#dns下的Chrome的DNS缓存
评论
不适用于我,仍然必须重新启动
–伺服器
16年7月8日在19:38
#6 楼
就我而言,我只有一个需要刷新的域名。诸如切换飞行模式,执行硬重启或chrome:// net-internals /#dns中的操作之类的建议对我不起作用。相反,我暂时将WiFi设置更改为使用8.8.8.8的Google域名服务器。这些是我采取的步骤:
设置-> WiFi->点击当前连接并记下当前IP地址
长按当前连接->修改网络
检查“高级设置”
将“ IP设置”更改为“静态”
设置“ IP地址” ”,从第一步开始到当前IP。
将“网关”设置为您的IP地址,但第4个数字为.1(这只是一个猜测。如果您知道它有所不同,请使用该名称) >将“ DNS 1”设为8.8.8.8大概在浏览器中访问该域会产生相同的效果。 。
这是在运行Android 5.1.1的Sony Xperia Z3上的
#7 楼
在采用错误DNS且在两个WLAN之间切换到太多的Adroid 5.1 Mobile上;(WLAN Connexion上的问号。
我不想像以前那样恢复手机。 。
Engelsiz:DNS Changer修复了它;)
评论
您是否需要对系统应用程序,第三方应用程序或您的应用程序执行此操作?我猜是第三方吗?通过终端仿真器ping服务器时需要它。
请更新标题,以反映您想要基于CLI的答案。该排名在Google中排名,搜索此标题的人中有99%的人没有root或CLI技能。
这里有更新吗?正如@PJBrunet所说,拥有根不是通常的情况,而且当前的手机不允许取出电池。我正在寻找刷新DSN的原因,因为这样做可以解决Windows上的“ IP故障”,这在我的手机中也是如此,但是Android上没有外壳。