Android:如何telnet手机?

28

我想知道是否可以通过USB连接的Android手机 telnet 到特定端口。我已经发现如果我输入命令 telnet localhost:5556,我可以进入模拟器。

当我连接物理设备时,是否可以执行类似的操作?哪些命令可以处理?

4个回答

16

adb shell 是连接终端的方式。实际上,您可以telnet到设备上的任何端口,只要有一个应用程序正在侦听该端口即可。我不认为设备提供与模拟器相同的功能,因为这将允许恶意用户执行许多操作。此外,通过模拟器提供的telnet功能旨在提供开发功能,以克服不在物理设备上时的限制(例如端口转发等)。我不确定目标是什么,但如果您想要,可以创建支持telnet并绑定到设备上特定端口的应用程序。


1
渔夫:/ $ telnet localhost 5554 /system/bin/sh: telnet: 找不到命令,它无法工作。 - marti_

16
  1. 在您的安卓手机上,您应该已经安装了终端.apk (应用) 或其他一些终端应用程序。您还需要busybox (应用),我假设您已经对您的安卓设备进行了root。打开它,输入以下命令:

    su

    busybox telnetd -l /system/bin/sh

  2. 现在在您的客户端机器上输入以下命令:

    adb forward tcp:6000 tcp:23

    telnet 127.0.0.1 6000

~~搞定


为什么使用tcp:23?背后的原因是什么? - Aniket Thakur
1
TCP端口23是默认的Telnet端口。但它需要设置setuid root(su)才能工作。 - tony-p-lee
1
Simon - 超链接加1分。 - node_analyser

8

您可以在Google Play上免费下载名为“Terminal IDE”的安卓应用。安装该应用之后,打开其中的终端并输入telnetd,这将启动安卓手机上的telnet服务。

使用USB将手机连接到电脑上,在命令提示符中输入以下内容:

  1. adb forward tcp:[您的端口号] tcp:8080
  2. telnet 127.0.0.1:[您的端口号]

好了!


为什么使用tcp:8080?背后的原因是什么? - Aniket Thakur
1
@AniketThakur 如果您不是以setuid root的身份运行程序,那么您需要使用大于1024的端口。8080端口是一个常用的默认选择。 - tony-p-lee

2
如果您拥有Android设备桥接, 简单的adb shell命令就可以让您访问命令行。 编辑: 我没有测试过这个方法,但您可以检查/system/bin中是否存在"telnetd"。尝试运行它,然后输入"netstat"。您应该会从netstat收到一个IP地址,并且可能能够telnet到该IP地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接