サブネットの「親」IPと「会話」する方法は?

サブネットの「親」IPと「会話」する方法は?

*nixシステムにのみアクセスできます。 NetBSDおよび/またはLinuxベースのベアオペレーティングシステム。

ADBしたがって、私の問題はすべてのプラットフォームで広く利用可能ではなく、使用可能であってもインストールまたは取得(インターネットアクセス、スーパーユーザーアクセスなど)が困難であるという事実に由来します。

それにもかかわらず、ほとんどRNDISすべてのAndroidデバイスはすでにこの機能を提供しています。電話を「ルーター」として許可すると、netcatを使用するためのオプションが提供されます。これは、「サーバー」を設定して介入することなく、双方向にファイルをインポートまたは受信できるためですADB

このように:

NetBSD
dhcpcd -n urndis0

Linux
udhcpd -i usb0

これにより、Androidで設定したサブネット内のIPが提供されます。それは次のとおりです。192.168.32.225/24

したがって、本質的に電話機はルータとして機能し、私の*nixコンピュータに電話機自体によって設定されたサブネットに属するIPを提供します。 localhostでポート127.0.0.1を開いてファイルを転送したいですnetcat

このような:

On Android device:
busybox nc -v -w3 -l -p 3838

On *nix system (Linux in the example below):
nc -v -w3 **(upper higher loopdevice outside subnetted network) 127.0.0.24** 3838

そして、Android自体のローカルネットワークにすでに存在する「親」ネットワーク/ループデバイスにアクセスできます。

Android携帯が接続を共有する別のホストであると仮定し、マイ* nixボックスがインターネットにアクセスできるように、マイコンピュータにサブネットIPを割り当てます。

だから私の質問は:Android携帯電話のRNDISインターフェースによって提供されるIP(サブネット内)を使用して* nixの標準ツールを介して携帯電話自体のローカルネットワークにアクセスできますか?

解決策 @FrédéricLoyer ありがとうございます!

いいですね。この方法では、使用しているすべてのコンピュータにアクセスする必要はなく、adbほとんどの場合busybox ncおよびまたはssh。これは完璧です。これにより、携帯電話自体でアクティブな接続を必要とせずに、AndroidにSSHで接続できます。驚きじゃないですか!

これが私がすることです。

# This makes my computer to request an IP to my phone.
$sudo udhcpc -i usb0

# Since I got access to busybox-only most of the time, this gives me the IP from the "router" which is the phone.

$route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.42.129  0.0.0.0         UG    0      0        0 usb0
127.0.0.1       *               255.255.255.255 UH    0      0        0 lo
192.168.42.0    *               255.255.255.0   U     0      0        0 usb0

# ifconfig output shows me the new IP assigned to usb0 on my computer.

その後、私の電話にSSHを接続するか、Termuxを使用してポートを開く問題です。素晴らしい! :)

ベストアンサー1

Android携帯では、次のように入力します。

busybox nc -v -w3 -l -p 3838

大丈夫そうです。

Linuxでは、ip route次のように入力する必要があります。

default via 37.59.40.254 dev enp1s0 onlink 
37.59.40.0/24 dev enp1s0 proto kernel scope link src 37.59.40.118 

パスのある行はdefaultルーターのアドレスを示します。 (ここ37.59.40.254)。ncこのルーターアドレスはRNDISサブネットのAndroidアドレスなので、Linuxで入力してください。 IPアドレスは1つだけ入力する必要があります(127.0.0.24ではありません)。 (127個のアドレスはLinuxシステム内で内部移行用に予約されています。)

ここにはスライスのようなものはありません。 Androidはおそらくネットワークを作成します192.168.32.0/24。このネットワークには2つのアドレスが定義されています(両側に1つずつ)。他のアドレスは機能しない可能性があります。

おすすめ記事