我可以使用readthedocs中的默认init.lua连接到AP . - https://nodemcu.readthedocs.io/en/master/en/upload/

但DNS不起作用,http客户端也不起作用 .

我编辑了credentials.lua以匹配我的SSID和密码 . 它成功连接到我的WiFi

我验证它是否与此示例脚本相关联:

do
local sta_config=wifi.sta.getconfig(true)
print(string.format("\tCurrent station config\n\tssid:\"%s\"\tpassword:\"%s\"\n\tbssid:\"%s\"\tbssid_set:%s", sta_config.ssid, sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false")))
end

结果:

[NodeMCU-Tool] Connected
[NodeMCU] Version: 2.2.0 | ChipID: 0x813d2b | FlashID: 0x1625c2
[NodeMCU] Running "getapinfo.lua"
[NodeMCU] >----------------------------->
Current station config
    ssid:"JohnnyCinco"  password:"88888888"
    bssid:"00:05:4e:4c:3e:0b"   bssid_set:false
[NodeMCU] >----------------------------->

我使用此示例脚本验证我获得了IP .

ip, nm, gw = wifi.sta.getip()
print("IP Address is:")
print(ip)
print("NM is:")
print(nm)
print("GW Address is:")
print(gw)

结果:

IP Address is:
192.168.61.197
NM is:
255.255.255.0
GW Address is:
192.168.61.1

这是此路由器的正确IP .

但是简单的DNS失败了 . 我用nodemcu的例子创建了一个脚本 .

net.dns.resolve("www.google.com", function(sk, ip)
    if (ip == nil) then print("DNS fail!") else print(ip) end
end)

这是结果 .

[NodeMCU-Tool] Connected
[NodeMCU] Version: 2.2.0 | ChipID: 0x813d2b | FlashID: 0x1625c2
[NodeMCU] Running "getgoogdns.lua"
[NodeMCU] >----------------------------->
null
[NodeMCU] >----------------------------->

即使我从DHCP获得DNS服务器 . 我将其更改为8.8.8.8再次测试,我也遇到了同样的失败 .

我可以创建一个http服务器并从局域网上的其他WiFi客户 endpoints 击它,该部分工作 . 但DNS查找和http客户端请求都失败了 .

此WiFi AP适用于所有其他客户端 . 没有防火墙 . 只是为了确保我尝试了2种不同的路由器 . 我还尝试了第三台路由器,它有蜂窝互联网而不是我的有线互联网 . 都失败了 .

这是在nodemcu版本2.2.0上 . 我尝试了dev和master分支 . 两者都有相同的结果 .

我尝试在nodemcu-build.com上构建,并且还在我自己的linux机器上构建 . 两者都失败了

我尝试过来自不同供应商的4种不同的ESP8266开发板 . 都失败了 .

我错过了什么?我必须遗漏一些基本的东西 . 这太基础了,无法打破 . 或者最新的固件坏了吗?

谢谢J5