モバイルサービスを搭載したAndroid携帯電話で「USBテザリング」をオンにし、USBケーブルを使用して携帯電話をLinuxコンピュータに接続しました。
コンピュータでは、
携帯電話の「USBテザリング」で作成されたネットワークに接続するために使用されるネットワークインターフェイスは何ですか?
ネットワークに自動的に接続されますか、またはいくつかのコマンドを実行する必要がありますか?前者の場合、自分のコンピュータにインターネットが接続されていないのはなぜですか?
ワイヤレスインターフェイスをオフにします。ありがとうございます。
$ sudo ifconfig wlp5s0 down
$ sudo iwconfig
lo no wireless extensions.
enp4s0 no wireless extensions.
wlp5s0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
enp0s20f0u3 no wireless extensions.
$ sudo ifconfig
enp4s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 20:47:47:73:02:6e txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 31812 bytes 2845669 (2.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31812 bytes 2845669 (2.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
答え1
少なくとも私のSony Xperia 5 IIIとDebian 11では、電話はドライバをusb0
使用してrndis_host
ネットワークインターフェイスとして表示されます。
ドライバモジュールは、およびrndis_host
という他のモジュールに依存します。cdc_ether
usbnet
mii
ネットワークインタフェース名は、おそらくDebianがデフォルトでUSBネットワークインタフェースにMACアドレス()ベースの名前を使用するように指示するファイルをusb0
追加したためです。ただし、少なくとも一部の電話機は RNDIS インターフェイスを通過しませんが、ドライバはランダム MAC を割り当てます。したがって、属性を取得できないため、既存のカーネルベースの名前はそのまま残ります。/lib/systemd/network/73-usb-net-by-mac.link
enx112233445566
udev
ID_NET_NAME_MAC
usb0
他のディストリビューションでは、デバイスパスに応じて名前を使用できます。例enp0s20f0u3
:パスは、携帯電話のテザー接続に使用されているUSBポートと現在接続されている他のUSBデバイスの数によって異なり、最適ではない可能性があります。
したがって、あなたの質問に対する答えは次のとおりです。
携帯電話の「USBテザリング」で作成されたネットワークに接続するために使用されるネットワークインターフェイスは何ですか?
名前はLinuxディストリビューションと携帯電話のモデルによって異なります。usb0
たとえば、MACベースの名前、enx112233445566
パスベースの名前(たとえば)などですenp0s20f0u3
。
ネットワークに自動的に接続されますか、またはいくつかのコマンドを実行する必要がありますか?前者の場合、自分のコンピュータにインターネットが接続されていないのはなぜですか?
使用しているLinuxディストリビューションとコンピュータの特定の構成がわからない場合は、この質問に確実に答えることはできません。システムは、DHCPを介してホットプラグネットワークインターフェイスを自動的に設定するように設定されていますか?異常なインターフェース名を自動的に設定しますかusb0
?
オプションがない場合は、以下sudo ifconfig
のみ表示されます。アクティブで構成済みsudo ifconfig -a
ネットワークインターフェイスも設定されていないインターフェイスを見たいと思います。
出力は、sudo iwconfig
現在システムに設定されていないUSBベースのネットワークインタフェースがあることを示しますenp0s20f0u3
。これはあなたの携帯電話かもしれません。 NetworkManagerを使用している場合は、接続のみを設定できます。 DHCPを使用して自動的に接続するように設定し、「すべてのユーザーがこのネットワークに接続できる」を選択して、単純な接続ではなくシステム全体のネットワーク接続にすることもできます。ユーザーアカウントでログインしている場合にのみ使用できます。
他のネットワーク構成サブシステムを使用している場合は、自動的に接続するように構成する必要があります。新しいネットワークへの接続はセキュリティに敏感な作業である可能性があるため、システムに対する悪意のあるメイド型攻撃から一定レベルの保護を提供するために、システムはデフォルトで以前に未知のホットプラグネットワークインターフェイスに自動的に接続されませんできます。攻撃します。エアギャップを維持します。
さらに、RNDIS USBネットワークインタフェースの様々なバージョンは、わずかに異なるUSBデバイスクラス識別子を使用します。 2018年5月頃まで、カーネルはUSBデバイスでRNDISネットワークインターフェイスを識別する3つの可能な方法を知っていました。
したがって、カーネルがそれより古い場合、低レベルおよびカーネルモジュールには、 USBインタフェースクラス「その他」、サブクラス4、プロトコル1をRNDIS USBネットワークインタフェースとして検出するコードusbnet
がcdc_ether
含まれていないため、ロードが失敗する可能性があります。rndis_host
テザリングモードで電話に接続したときの正しいUSBネットワークプロトコルモジュール。この場合、ネットワークインターフェイスがまったく検出されない可能性があります。
(この問題を解決したカーネルパッチを新しいAndroid携帯に接続する必要があるシステムにバックポートする必要があり、特定のアプリが更新されるまでカーネルのアップグレードを受け入れることができなかったのでこれを覚えています...長い話です。)