You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSch连接树莓派时无法解析.local主机名的问题求助

问题:JSch无法通过.local主机名连接树莓派

我正在使用JSch连接树莓派,目前通过getSession(username, hostname);方法使用IP地址可以正常连接,但树莓派每次重启后IP都会变化。我希望像终端中使用ssh [username]@raspberrypi.local登录那样,在JSch中用[hostname].local或[hostname]代替IP地址,但尝试getSession(username, "raspberrypi");和getSession(username, "raspberrypi.local");均失败,抛出以下错误:

com.jcraft.jsch.JSchException: java.net.UnknownHostException: Unable to resolve host "raspberrypi.local": No address associated with hostname

我确认树莓派处于在线状态(使用IP地址调用getSession(username, ip)可正常连接),本地/etc/resolv.conf输出如下:

#Generated by NetworkManager
nameserver 192.168.0.1

完整错误日志:

2025-01-07 04:13:18.484  7546-8175  System.err              com.fyp.ssh                          W  com.jcraft.jsch.JSchException: java.net.UnknownHostException: Unable to resolve host "raspberrypi.local": No address associated with hostname
2025-01-07 04:13:18.484  7546-8175  System.err              com.fyp.ssh                          W      at com.jcraft.jsch.Util.createSocket(Util.java:349)
2025-01-07 04:13:18.484  7546-8175  System.err              com.fyp.ssh                          W      at com.jcraft.jsch.Session.connect(Session.java:215)
2025-01-07 04:13:18.484  7546-8175  System.err              com.fyp.ssh                          W      at com.jcraft.jsch.Session.connect(Session.java:183)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at com.fyp.ssh.MainActivity.executeRemoteCommand(MainActivity.java:82)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at com.fyp.ssh.MainActivity$MyTask.doInBackground(MainActivity.java:60)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at com.fyp.ssh.MainActivity$MyTask.doInBackground(MainActivity.java:47)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at android.os.AsyncTask$3.call(AsyncTask.java:394)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.lang.Thread.run(Thread.java:923)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W  Caused by: java.net.UnknownHostException: Unable to resolve host "raspberrypi.local": No address associated with hostname
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.net.InetAddress.getAllByName(InetAddress.java:1152)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.net.Socket.<init>(Socket.java:218)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at com.jcraft.jsch.Util.createSocket(Util.java:343)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      ... 11 more
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W  Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at libcore.io.Linux.android_getaddrinfo(Native Method)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:73)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:202)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:73)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)
2025-01-07 04:13:18.485  7546-8175  System.err              com.fyp.ssh                          W      ... 15 more

内容的提问来源于stack exchange,提问作者yolopoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:56:02