kingToolbox / kingToolbox/WindTerm

[Bug]: Connection to local IP fails with "Host unreachable" on macOS, while system SSH client works

Open
#3,009 4 comments 1 reaction 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.