Android Wifi说“连接,没有互联网”,但互联网运作很好 -- wi-fi 领域 和 bugs 领域 和 dns 领域 android 相关 的问题

Android wifi says “Connected, no internet” but internet works just fine


简体版||繁體版
8
vote

问题

中文

这是一个奇怪的事情,即在我的工作中开始发生在WiFi网络。连接到网络的Android设备说"连接,无互联网" 但互联网完全良好。这已发生在运行Android 6和7的设备上。这是美国的小型企业,也没有阻止任何DNS的代理或封装门户。 Windows和Ubuntu笔记本电脑连接并说一切都很好,似乎是Android特定的东西。

是否有人知道Android究竟如何确定天气,网络有互联网访问?这似乎是解决方案最终会在路由器配置中结束,但了解可能导致Android以这种方式有所帮助。有人可以采取哪些步骤排除此问题?

英文原文

This is a strange thing that started happening with the wifi network at my work. Android devices connected to the network say "Connected, no internet" however the internet works perfectly well. This has happened to devices running android 6 and 7. This is a small business in the US and theres no proxy or captive portal that is blocking any DNS. Windows and Ubuntu laptops connect and say everything is fine, seems to be something Android specific.

Does anyone know how exactly Android determines weather a network has internet access? This seems like the solution will end up in the router configuration, but knowing what could cause Android to behave this way would be helpful. What steps could one take to troubleshoot this issue?

        
     
     

回答列表

2
 
vote

也许这似乎可能是连接到Google服务器(俘虏门户网站服务器)而不是配置被配置的resctive portal登录的问题,您似乎在您的帖子中引用。

(由于棒棒糖(5.1+以来)连接到网络(尤其是Wi-Fi网络)时,Android系统通过对属于Google服务器的某些预定义URL的检查检查是否存在活动的Internet连接。如果失败,则Wi-Fi信号图标上的感叹号和"已连接" ,显示(即使您可以访问其他网站,互联网也会启动)因此它可能是与该特定URL的连接的临时问题:

Android尝试到达一个名为 generate_204 的文件 服务器,如果没有积极的反应,这意味着有 没有与Internet的连接,也没有生成通知,检测URL之间的不同之处 不同的Android版本。

  • clients3.google.com/generate_204 check (kitkat)

  • connectivitycheck.gstatic.com/generate_204 (marshmallow)

似乎谷歌改变了俘虏门户 检测近期Android e.g oreo的版本。

看起来Google现在检查两个 generate_204 两者 connectivitycheck.gstatic.com vid=3623490 vid=3623491

再次是在封锁访问Google服务的区域中的一个问题。这个 答案 但是解释了如何绕过这样的话,你看看它。

已从这个讨论中提取了一块信息。

基于此,您可以绕过此选项:

  1. 更改俘虏门户服务器

    • 安装终端应用程序可选地,这些命令也可以通过 vid=3623492 运行。

    • 打开终端应用程序并运行 vid=3623493

    • 运行 vid=3623494 。这将显示当前的封印门户服务器。 "空" 回复通常是默认值。

    • 运行 vid=3623495 。您可以将Google.com添加为Captive Portal Server, Abcdefghijklmnabcdefghijklmn16

    • 运行 vid=3623497 一旦退出su,然后退出一个时间来关闭终端。

    • 重新启动Android设备。没有重启就无法工作。

  1. 禁用俘虏门户
  • 由于罪魁祸首是一种方法 vid=3623498 ,它是一个访问 vid=3623499 ,以测试连接是否被视为 "可用" 。页面,因为它的名字建议,旨在始终返回 a private=10 状态代码。基于此,您有几个选项:

i。杀死 private=11 完全

  • 与 adb set,运行 private=12 (Android 7.1+) 或使用 private=13

注意:向下侧是IScaptivePortal()实际上是有用的,以检测例如WiFi网络需要登录时。如果对204页的请求被重定向到登录页面(不是204),则系统将理解并显示按预期的感叹号。

II。更改 private=14

的目标
  • 另一个解决方法正在使用特定区域中可访问的主机替换Google主机。此主机也应该返回 private=15 每次 private=16 都被访问。

    i.e private=17


  1. 使用hosts

    • 您可以编辑 private=18 来阻止俘虏门户检测URL,从而绕过向俘虏门户服务器的发送请求。


为什么Linux和Windows连接没有问题?

如您在帖子中提到的那样,这似乎是Android,Inde D上面的讨论突出显示。 原因是,对于这些设备(Linux和Windows),连接机制完全不同。

这些设备不需要连接到Google服务器以首先检测Internet是否处于活动状态。

 

Perhaps this seems likely to be a problem connecting to Google servers (captive portal server) not the browser configured captive portal login you seem to be refering to in your post.

(Sometime since Lollipop (5.1+)) When connected to networks (especially Wi-Fi networks), android system checks if there is an active internet connection by perfoming checks on certain pre-defined URLs belonging to Google servers. If it fails, there'll be an exclamation mark on the Wi-Fi signal icon and a xe2x80x9cConnected, no internetxe2x80x9d notification is shown (even though you can access other websites and the internet is up an running) so it may be a temporary problem with connectivity to that specific URL:

Android tries to reach a file named generate_204 on one of the Google servers and if there is no positive response, it means that there is no connection to the internet, and notification is generated also, the detection url differs between different Android versions.

  • clients3.google.com/generate_204 check (kitkat)

  • connectivitycheck.gstatic.com/generate_204 (marshmallow)

It seems that google has changed the captive portal detection on recent versions of android e.g oreo.

looks like google now checks for both a generate_204 on both connectivitycheck.gstatic.com and a gen_204 on www.google.com.

Again is a problem on its own esp in regions where access to google services is blocked. This answer however explains well how to bypass such and you make take a look at it.

A chunk of information has been extracted from this discussion.

Based on this you have some options to bypass this:

  1. Changing captive portal server

    • Install a terminal app alternatively these commands can also be run via the adb shell.

    • Open the terminal app and run su.

    • Run settings get global captive_portal_server. This will show the current captive portal server. A "null" reply is usually the default.

    • Run settings put global captive_portal_server YOUR_SERVER_ADDRESS. You can add google.com as the captive portal server, i.e settings put global captive_portal_server google.com.

    • Run exit once to exit from su, then exit one more time to close the terminal.

    • Reboot the Android device. Will not work without a reboot.

  1. Disabling captive portal
  • Since the culprit is a method isCaptivePortal() which access clients3.google.com/generate_204 to test if a connection is deemed "usable". The page, as its name suggest, is designed to always return a HTTP 204 status code. Based on this you have a couple options:

i. Kill isCaptivePortal() completely

  • with adb set, run adb shell su -c "settings put global captive_portal_detection_enabled 0" (Android 7.1+) or using adb shell su -c "settings put global captive_portal_mode 0"

Note: The down side is that isCaptivePortal() is actually useful to detect for example when a WiFi network requires login. If the request to the 204 page gets redirected to a login page (not a 204), the system will understand and display the exclamation mark as intended.

ii. Change the target of isCaptivePortal()

  • another workaround is replacing the Google host with a host that is accessible within the specific region. This host should also be returning 204 every time /generate_204 is accessed.

    i.e adb shell su -c "settings put global captive_portal_server {alternate_host} "


  1. Using hosts

    • You can edit hosts to block the captive portal detection url thus bypassing the sending of the requests to captive portal server.

Why Linux and Windows connect with no issues?

As you mentioned in your post that this seems to be Android specific, indeed the above discussion highlights that. The reason is that for those devices (Linux and Windows) the mechanism of connection is completely different.

These devices won't need to connect to Google servers to first detect if an internet is active.

 
 
 
 
0
 
vote

检查Android设备上的时间和日期。在HTTPS时代,在与现实中同步的日期和时间非常重要。 我今天有这个问题,我的电视很少有几年。 :)

 

Check time and date on your android device. In https era is very important to have date and time in sync with reality. I had this issue today with my TV and it was a few years late. :)

 
 

相关问题

27  如何刷新DNS缓存?  ( How can i flush the dns cache ) 
如何清除我的Android手机上的DNS缓存? (Droid3,姜饼,根为特定) 理想情况下,我正在寻找一个贯穿终端仿真器的命令,类似于 ipconfig /flushdns 在Windows机器上。 这是什么Linux版本? ...

2  如何在Android中浏览到NAS?  ( How to browse to a nas in android ) 
我有一个连接到我的家庭路由器的NAS,NAS正在运行Web服务器。我想在我的Android平板电脑上运行浏览器,输入URL(在我的情况下,diskStation / wordpress)并获取页面。这是从我的电脑工作的,但如果我从平板电脑那样完成,我被重定向到我的ISP的搜索页面(即Verizon尝试搜索名为"Dis...

5  如何在Nexus One上设置DNS服务器?  ( How to set the dns server on nexus one ) 
我在我的n1上使用的ISP不允许我打开Facebook。使用PC,我可以使用Google DNS服务器(8.8.8.8)来逐行它们,但在N1上,我找不到将stufff放在哪里。 如果您知道如何,请帮助。 ...

28  如何通过机器名称而不是IP到达本地计算机?  ( How to reach local computer via machine name instead of ip ) 
Developer在这里原型设计了一个移动应用程序,有点新增移动: 我有一个简单的HTTP服务运行(当前)在我的主要笔记本电脑上,带有机器名称 latitude 。 另一台笔记本电脑名为 vaio 共享相同的wifi网络可以通过 http://latitude:8080 - 换句话说,它可以轻松解决(当前)I...

3  连接到无线数据时使用哪些DNS服务器?  ( What dns servers are used when connected to wireless data ) 
连接到无线数据(不是WiFi)时使用的DNS服务器? 在Android Kitkat中有办法讲述? ...

0  在棒棒糖上使用本地(私有)DNS服务器  ( Using local private dns server on lollipop ) 
我有一个网站上的网站上的网络上的IIS服务器。该网站的DNS仅在网络中有效。 DNS不能在本地网络之外解析。 我正在使用Wi-Fi连接到网络,但我相信我的手机试图使用Google DNS服务器,以便在我尝试在我的Galaxy S5中从Chrome访问它时解析网站名称。 是否有用于指导Android使用单独的DNS服...

3  为什么我的moto x电话支持mdns,但我的三星平板电脑没有?  ( Why does my moto x phone support mdns but my samsung tablet does not ) 
我有一个广播MDN的设备,我正在使用这个应用程序在Bonjour浏览器中查看它: https://play.google.com/store /apps/details?id=NET.HE.NetworkTools&骤物; HL=EN 在我的三星平板电脑上,它找不到我的设备。 在我的Moto X上,该设备出现在...

0  Android驱动程序在我的Win7主机上重置DNS  ( Android driver resets dns on my win7 host ) 
几天前,我将我的Android(HTC1)手机插入我的Win7机器,从未有任何网络问题。 当我连接时,我还制作了以下变化: 移动热点& tethering-> USB网络设置 - >互联网通过 即使手机是断开时,某些东西(新)将DNS设置重置为手机的IP地址。我用 ipconfig /rene...

24  如何在Android Kitkat上更改移动连接的DNS?  ( How to change mobile connectionss dns on android kitkat ) 
我想避免我当地的移动ISP中的审查(例如,因为一些未知原因,它阻止了Imgur。 屏幕截图(单击图像的较大变体) 我很确定我可以通过将我的DNS更改为Google DNS或Opendns来规避这一点,但我并不肯定如何在Kitkat上完成这一点。 Info: Device: Nexus 5 Android ...

0  在Android上更改DNS设置 - 不起作用  ( Changing dns settings on android not working ) 
当我在android设备上设置我的DNS并转到 dns泄漏测试它不是我在DNS设置中设置的DNS。它由我的ISP设置的DNS。 如何让它能够使用我想要的DNS? 参考: how-to-dns-settings-on - android 我的设备是一个lemaker guitar 设备上没有root访...

5  是否可以基于连接执行DNS解析?  ( Is it possible to do dns resolution based on connection ) 
在我的Galaxy说明2手机(当然是Android),是否可以编辑 hosts 文件,以便它将 example.com 解析为公共IP,但可以解决它如果与特定SSID连接到WiFi的本地私有IP?即连接到Home WiFi时,它应该将域名解析为LAN上的本地服务器,但其他任何其他地方都应该将其解析为公共IP。 我猜它...

16  Android终端不能nslookup?  ( Android terminal not able to nslookup ) 
每次我尝试telnet到我的lg ally上的域,它会失败,但它有效,如果我使用IP地址。所以我试图使用 nslookup telehack.com 并且它返回: Server: 0.0.0.0 Address 1: 0.0.0.0 nslookup: can't resolve 'teleh...

7  我想要一个我可以锁定在DNS设置中的智能手机。是Android“这是”  ( I want a smart phone that i can lock in dns settings is android the one ) 
是关于互联网boss 。我希望能够锁定或密码保护DNS设置,以便Opendns,因此我可以拥有一个安全的智能手机,我的孩子可以使用,无需担心访问PR0N或其他任何东西。任何人都知道这是否可能?我不想使用另一种内容过滤方法。 ...

6  我可以覆盖HTC EVO上的默认DNS设置是否没有root访问权限?  ( Can i override the default dns settings on an htc evo without root access ) 
是有没有办法覆盖默认情况下使用的Sprint DNS服务器在HTC EVO运行Froyo的3G连接上使用没有root Access? 我想要这样做的原因是因为当我在家里的WiFi连接时,某些网站可以在使用Opendns或Google DNS时解决,但是当我在3G时,同一个网站就返回页面找到了,所以最简单的罪魁祸首是D...

1  在Android 5.0.1中设置打开DNS  ( Set open dns in android 5 0 1 ) 
刚刚将我的onlyplus One更新为Android 5.0.1,当我在Wi-Fi设置中选择"静态IP" 选项时,我无法更改DNS。基本上我可以把价值放在,只有禁止确定并接受更改。 在Android 4.4.2中是可能的。有没有人碰到这个问题? ...

8  Android Wifi说“连接,没有互联网”,但互联网运作很好  ( Android wifi says connected no internet but internet works just fine ) 
这是一个奇怪的事情,即在我的工作中开始发生在WiFi网络。连接到网络的Android设备说"连接,无互联网" 但互联网完全良好。这已发生在运行Android 6和7的设备上。这是美国的小型企业,也没有阻止任何DNS的代理或封装门户。 Windows和Ubuntu笔记本电脑连接并说一切都很好,似乎是Android特定的...

2  DNSCRYPT在Android上  ( Dnscrypt on android ) 
我想在Android上安装DNSCrypt。我在Windows 8,Linux Mint和Kali Linux上安装了它。但是我对Linux来说非常新的,从而处理Android作为一个Linux发行版是出于我的联盟。我谷歌这个教程为这个时间几个小时,而且每个人似乎都没有人回答他们。 DNSCrypt网站有一个 And...

3  更改DNS但留在DHCP上  ( Change dns but stay on dhcp ) 
我有一个"MINIX Neo X8-H Plus" Android电视盒,运行Android 4.4(Kitkat)。 我想在WiFi连接上更改DNS服务器,但要执行此操作,如果我更改为静态IP地址,我只能获得该选择。现在,在Windows或iOS上,您可以继续使用DHCP,同时将不同的DNS服务器设置为DHCP服务...

2  无法在S3迷你时更改DNS  ( Cant change dns on s3 mini ) 
我正在尝试在手机上使用opendns。我尝试了使用 setdns , dns changer ,以及 dnset 。至少两个声称允许在没有root访问权限的情况下更改WiFi DNS(我只使用4.1.2的Unrooted S3 Mini上使用WiFi)。无论我做什么,Opendns测试页面都说它不起作用,我也安装了一...

1  如何使用DNS66阻止访问域名?  ( How to block access to domains with dns66 ) 
我正在使用开源Android应用程序DNS66 在我的智能手机上阻止广告。它也可以通过它阻止整个域名(如facebook.com,twitter.com)吗?我的目标:如果我参观,我的目标是没有加载。 Facebook.com在移动Chrome浏览器中。 ...

16  为什么Android拒绝解析指向内部IP地址的DNS记录?  ( Why is android refusing to resolve dns records pointing to internal ip addresses ) 
在尝试访问本地网络应用程序时,我在Android设备(Nexus 7)上有一个非常奇怪的行为。 Android设备而不是获取LAN上机器的实际IP,而是获取 Public IP,这意味着Chrome,Firefox或任何其他浏览器只需显示路由器的网页。 我有一个处理本地网络的内部DNS服务器。从PC执行 ping ...

6  Gingerbread手机只查询AAAA记录?  ( Gingerbread phone only queries for aaaa records ) 
自昨天我(除了常规IPv4)IPv6在我的LAN中的IPv6(本机IPv6由我的ISP提供)。 我有Windows XP,Windows 7和Linux桌面以及Android 3.1平板电脑(华硕变压器101),所有工作都很好。他们可以访问Internet上的IPv4和IPv6网站。 问题在于我的三星Galaxy S...

2  在4.0 ICS中访问Internet的问题  ( Problem accessing internet in 4 0 ics ) 
对于一些奇怪的原因,我的Android 4.0 ICS平板电脑不再能够访问Internet。 首先,通过WiFi,它可以连接到两个不同的网络。 然后,我试图通过DHCP将其连接到家庭路由器。它不能。 至于Wifi,平板电脑获得IP号。 我不知道这是怎么发生的,如果它是 route 问题或dns问题或其他。 试图安装终...

1  Cyanogenmod 7 OpenVPN DNS不起作用  ( Cyanogenmod 7 openvpn dns not working ) 
我想通过我的VPN路由手机的所有互联网流量。 我通过Cyanogenmod 7.2.0.1-Bravo通过集成VPN设置对话框配置了OpenVPN。 当我激活Redirect-Gateway选项时,DNS解析(例如Google.com)不再工作了。所以不像其他人那里的其他主机名不起作用(这对我来说不是问题)。该设备仍...

1  热点移动网络系列和DNS  ( Hotspot mobile network tethering and dns ) 
我可能是其他人知道,如果打开移动热点并启用Wifi-tethering,我们就可以使用我们的Android手机通过连接到这个Android热点的笔记本(和其他设备)通过WiFi连接互联网访问。 我们的手机也作为路由器,由于Tethering跨越私有网络,我通常知道它是192.168.43.xxx,以将笔记本向外世界转...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有