如何解决Windows下GitBash中Telnet无法正常运行的问题?
解决Git Bash中Telnet无反应的问题
我之前也碰到过一模一样的情况,根源其实很清晰:Git Bash默认自带的telnet是一个shell脚本,并非Windows系统原生的Telnet客户端,所以输入命令后会直接返回,没有预期的交互会话。而CMD里直接调用的是Windows系统的telnet.exe,所以能正常工作。下面给你几个靠谱的解决办法:
方法1:直接调用Windows原生Telnet的绝对路径
在Git Bash里,直接使用Windows系统Telnet的完整路径执行命令,格式如下:
/c/Windows/System32/telnet.exe <目标主机> <端口>
举个测试示例,连接Google的80端口:
/c/Windows/System32/telnet.exe google.com 80
这样就能直接唤起原生的Telnet会话,和CMD里的效果完全一致。
方法2:给原生Telnet设置别名(推荐)
为了不用每次都输入长路径,你可以给Windows的telnet.exe设置一个别名,以后直接打telnet就能用:
- 打开Git Bash的配置文件,比如
~/.bashrc或者~/.bash_profile(如果没找到,直接新建一个即可)。 - 在文件末尾添加一行:
alias telnet='"/c/Windows/System32/telnet.exe"' - 保存文件后,在Git Bash里执行以下命令让配置立即生效:
source ~/.bashrc
之后你再输入telnet或者带参数的telnet <host> <port>,就会直接调用Windows原生的Telnet客户端了。
方法3:调整PATH环境变量优先级
Git Bash的PATH环境变量里,Git自带的工具目录(比如/usr/bin)可能排在Windows系统目录前面,导致优先调用了Git的telnet脚本。你可以把Windows的System32目录放到PATH最前面:
- 打开
~/.bashrc文件,添加一行:export PATH="/c/Windows/System32:$PATH" - 执行
source ~/.bashrc让配置生效。
不过这个方法可能会影响其他命令的调用优先级(比如某些Git工具可能被Windows同名工具覆盖),所以如果方法2能解决问题,优先用方法2。
内容的提问来源于stack exchange,提问作者Michael Treat




