【问题标题】:What framework of Android can be used to connect PC to Android and Android to other PC?什么Android框架可以用来连接PC到Android和Android到其他PC?
【发布时间】:2012-12-17 17:23:25
【问题描述】:

我有这种情况。我正在使用 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

在我的 Android 手机上:

/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

【问题讨论】:

  • 目前还不清楚你已经在做什么以及你想要实现什么。而且还不清楚安卓设备的生根是否可以接受。这也取决于 3g 网络的防火墙程度。一个通用的解决方案很难实现,但我认为对于特定的用例来说应该不难。

标签: android python linux bash android-intent


【解决方案1】:

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

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

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

我认为,尽管为 3G 加密狗购买带 USB 的廉价路由器盒会容易得多。或者,您可以将 3G 加密狗放入其中一台服务器并将其用作路由器。其实你可以试试用你的安卓手机当USB调制解调器加密狗,我找到this guide

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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多