5

我有这种情况。我正在使用 bash/python 在 Android 中编写一个应用程序。这样我就可以通过 PC 连接到 Android 并使用 USB 从 Android 连接到目标 PC/服务器。

但是什么 API 可用于将我所有的 Android 请求发送到 USB,以便我可以通过 Android 远程获得服务器 PC 的帮助?有没有其他可用的开源框架可以做到这一点?

在此处输入图像描述

或者

在此处输入图像描述

跟进:

我的手机中已经有“网络共享和便携式热点”选项。无需安装任何第三方应用程序。

在此处输入图像描述

因此,一旦我启用它,我就有一个名为 usb0 的新接口,其 IP 地址位于 Android + 笔记本电脑的同一子网中。

然后我在 Android 中简单地安装了 SSHDroid 服务器,现在我可以从 3G 连接到 Android。现在PC和Android都有usb0接口和同一个子网来共享数据,解决了所有的远程访问问题。

在我的笔记本电脑上:

$ ip addr

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether d4:be:d9:55:91:4a brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.219/24 brd 192.168.0.255 scope global eth0
        inet6 fe80::d6be:d9ff:fe55:914a/64 scope link 
           valid_lft forever preferred_lft forever

    7: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
        link/ether c6:8a:95:bf:fa:2b brd ff:ff:ff:ff:ff:ff
        inet 192.168.42.202/24 brd 192.168.42.255 scope global usb0
        inet6 fe80::c48a:95ff:febf:fa2b/64 scope link 
           valid_lft forever preferred_lft forever

在我的安卓手机上:

/data/data/berserker.android.apps.sshdroid/home # ip addr

11: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 6e:54:53:29:68:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.129/24 brd 192.168.42.255 scope global usb0
    inet6 fe80::6c54:53ff:fe29:688c/64 scope link 
       valid_lft forever preferred_lft forever

15: wlan0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 50:01:bb:e3:fb:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.163/24 brd 192.168.0.255 scope global wlan0
    inet6 fe80::5201:bbff:fee3:fbd7/64 scope link 
       valid_lft forever preferred_lft forever
4

1 回答 1

0

你想做的应该是可能的,但需要付出努力。有一些应用程序可以启用 USB 网络共享,但我认为它们并不适用于所有设备。这可以创建一个可用于与连接的服务器通信的网络。如果您在 android 上安装 ssh 服务器,则可用于通过隧道连接到内部服务器。端口转发是另一种选择。我认为您很可能需要一部有根电话。如果您的 3g 运营商可以与您的手机建立入站连接。

如果无法进行入站连接,那么您可以在手机或其中一台服务器上设置脚本,以每 5 分钟尝试 ssh 特定机器(您的 PC 或家庭路由器),创建通往内部网络的隧道。

要拥有稳定的主机名,您可以使用一些动态 dns 服务,例如 dnsdynamic.org,因为您的公共 IP 地址很可能至少在 3G 端会发生变化。

我认为,尽管为 3G 加密狗购买带 USB 的廉价路由器盒会容易得多。或者,您可以将 3G 加密狗放入其中一台服务器并将其用作路由器。实际上,您可以尝试将您的 android 手机用作 USB 调制解调器加密狗,我正在寻找本指南

这一切都取决于特定的设备功能和运气,但总而言之,如果是我,我会首先尝试将 android 手机用作 USB 调制解调器加密狗并使用动态 dns 服务,因此我始终知道 3G 连接的当前 IP。然后使用 ssh 连接到运行 3G 连接的服务器。从该服务器可以 ssh 到任何其他服务器。然后我会尝试使用带有一些 USB 3G 加密狗的专用路由器。我永远不会去麻烦配置一个作为路由器工作的安卓手机,听起来太费时了。

希望有帮助。

于 2013-01-07T09:25:20.887 回答