当我的台式计算机连接到我的 Android 手机时,我如何访问它?

Qur*_*ben 7 android

是否可以通过 Android 手机访问连接到互联网的计算机?(互联网通过网络共享通过电话)

我想使用 ssh 连接到计算机(从同一网络中的另一台计算机),但我无法访问该计算机。

是否可以转发端口、使用某种透明代理或使用 DMZ?

我的手机已经 root 并且安装了 Cyanogenmod,我可以使用 iptables。

编辑:更改后的标题完全改变了问题!

我的设置如下:我有一部 android 手机通过 USB 电缆从手机连接互联网连接到计算机,我想从与 android 手机同一网络中的另一台计算机通过 ssh 连接到 android 手机后面的计算机。这是不可能的,因为安卓手机为连接的计算机创建了一个单独的网络,有效地屏蔽了任何传入的信号。

事实证明,只需使用 iptables 即可轻松修复。

Qur*_*ben 11

结果证明很简单,当绑定电话时,它的行为就像一个路由器(eth0 上的 wifi 和 USB0 上的系留计算机)。我猜想以某种方式将交换机连接到电话将允许通过电缆将多台计算机连接到一台计算机(一个荒谬的设置,但仍然很有趣:D)。我不得不使用 iptables 将流量从设备的 22 端口路由到所连接设备的 22 端口并接受端口 22 上的流量。

我使用 ssh(DigiSSHD 应用程序)ssh 进入我的手机,以 root 身份登录并为 iptables 添加了以下两个规则。(其中连接的设备是 192.168.42.185)

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j DNAT --to 192.168.42.185:22
# iptables -A FORWARD -p tcp -d 192.168.42.185 --dport 22 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

使用相同的技术,人们可以在使用安卓手机无线连接到网络的计算机上运行网络服务器。只需将端口更改为端口 80:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.42.185:80
# iptables -A FORWARD -p tcp -d 192.168.42.185 --dport 80 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

请注意,android 部分支持 iptables,据我所知只有 iptables 二进制文件可用,而不是 iptables-save 和 iptables-restore,您需要为您的设备编译这些。我仍然无法保存我的配置,而且设置往往会经常重置,所以我有时仍然需要查看它。

这篇文章很有帮助:http : //www.fclose.com/b/linux/816/port-forwarding-using-iptables/

  • 很高兴您找到了问题的解决方案并将其发布在此处。谢谢!但是,如果您在此处包含答案的基本部分,并提供链接以供参考,您真的会 [帮我们一个忙](http://meta.stackexchange.com/q/8259)。 (3认同)