kingToolbox / kingToolbox/WindTerm
[Bug]: Connection to local IP fails with "Host unreachable" on macOS, while system SSH client works
- Dominant language
- C
- Stars
- 32.3k
- Forks
- 2.5k
- PR merge metrics
- No merged PRs in 30d
Description
### Environment
- **WindTerm Version:WindTerm_2.7.0_Mac_Portable_x86_64.
- **Operating System:macOS Sequoia 15.6 (24G84)
- **Remote SSH Server:** dropbear on ImmortalWrt (an OpenWrt fork)
### Problem Description
WindTerm is unable to establish an SSH connection to a device on the local network (e.g., `192.168.
[ssh-vvv-log.txt](https://github.com/user-attachments/files/21808848/ssh-vvv-log.txt)
5.45`). The connection fails instantly with a `Host unreachable` network error.
However, other SSH clients on the same machine, including the native macOS `ssh` command-line client, can connect to the exact same IP address without any issues.
Furthermore, WindTerm is able to connect successfully to public/external SSH servers, which indicates its networking stack is generally functional and not blocked by a firewall.
### Troubleshooting Performed
We have performed extensive troubleshooting and can confirm the following:
**1. The Network Path is Valid:**
The native macOS `ssh` client connects successfully. Verbose logs (`ssh -vvv`) show a successful handshake with the following modern algorithm suite:
- **KEX Algorithm:** `curve25519-sha256`
- **Host Key Algorithm:** `ssh-ed25519`
- **Cipher:** `chacha20-poly1305@openssh.com`
**2. It is NOT a Proxy Issue:**
We have confirmed that no session-specific or system-wide proxies are active on the macOS system.
**3. It is NOT a Firewall Issue:**
WindTerm can connect to external hosts, which makes a specific firewall rule blocking only local IP access for WindTerm highly unlikely.
**4. Configuration Reset Failed:**
Attempts to reset WindTerm's configuration by renaming/deleting the standard `~/.wind` directory did not work. The application continued to load the old session profiles even after the directory was moved. This suggests the active configuration is stored in a non-standard location or there is an issue with how the application finds its profile.
**5. Configuration Location is Undiscoverable:**
An exhaustive search of the user's home directory (using `find ~ -name "profiles.json"` and `find ~ -type d -iname "*windterm*"`) did not reveal any discoverable configuration files or directories, aside from the recreated empty `~/.wind` folder.
### Conclusion
Given that the network path is valid and all common client-side configuration issues have been ruled out, this appears to be a bug within WindTerm itself. The `Host unreachable` error is likely a misleading symptom of an underlying issue with how WindTerm handles connections to local network addresses on this specific macOS environment.
### 环境信息
- **WindTerm 版本:WindTerm_2.7.0_Mac_Portable_x86_64
- **操作系统: macOS Sequoia 15.6 (24G84)
- **远程 SSH 服务器:** dropbear on ImmortalWrt (一个 OpenWrt 的分支)
### 问题描述
WindTerm 无法与本地网络中的设备(例如 `192.168.5.45`)建立 SSH 连接。连接会立即失败,并提示 `Host unreachable` (主机不可达) 的网络错误。
然而,在同一台机器上的其他 SSH 客户端,包括 macOS 原生的 `ssh` 命令行工具,可以毫无问题地连接到完全相同的 IP 地址。
此外,WindTerm 能够成功连接到公网/外部的 SSH 服务器,这表明其网络功能通常是正常的,并且没有被防火墙整体拦截。
### 已执行的故障排查
我们已经进行了非常详尽的故障排查,可以确认以下几点:
**1. 网络路径有效:**
macOS 原生的 `ssh` 客户端可以成功连接。其详细日志 (`ssh -vvv`) 显示,连接成功握手并使用了以下这套现代化的加密算法组合:
- **密钥交换 (KEX) 算法:** `curve25519-sha256`
- **主机密钥 (Host Key) 算法:** `ssh-ed25519`
- **加密算法 (Cipher):** `chacha20-poly1305@openssh.com`
**2. 非代理问题:**
我们已确认,在 macOS 系统中没有启用任何会话级别或系统级别的代理。
**3. 非防火墙问题:**
WindTerm 可以连接到外部主机,这使得“防火墙规则仅针对本地 IP 访问进行拦截”的可能性极低。
**4. 配置重置失败:**
我们尝试通过重命名/删除标准配置目录 `~/.wind` 来重置 WindTerm,但这个操作没有生效。即使在目录被移动后,应用程序启动时依然能加载旧的会话配置。这表明,有效的配置文件存储在一个非标准的位置,或者程序寻找其配置文件的逻辑存在问题。
**5. 配置文件位置无法找到:**
通过在用户主目录中进行地毯式搜索(使用 `find ~ -name "profiles.json"` 和 `find ~ -type d -iname "*windterm*"` 命令),我们未能找到任何相关的配置文件或目录。
### 结论
鉴于网络路径有效,且所有常见的客户端配置问题都已被排除,此问题似乎是 WindTerm 软件本身的一个 Bug。`Host unreachable` 这个错误很可能只是一个误导性的症状,其根源在于 WindTerm 在处理此特定 macOS 环境下的本地网络连接时,存在一个潜在的程序问题。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with ssh-vvv-log.txt and reproduce the local-IP connection failure on macOS Sequoia using WindTerm_2.7.0_Mac_Portable_x86_64, comparing it with the native ssh client. Trace the connection path for local addresses and confirm that the fix preserves successful external SSH connections; no source file or test is identified in the report.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, macos
- Domain
- desktop, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100