Linux 컴퓨터에서 Android 휴대폰으로 "USB 테더링"으로 생성된 네트워크에 연결하는 방법은 무엇입니까?

Linux 컴퓨터에서 Android 휴대폰으로 "USB 테더링"으로 생성된 네트워크에 연결하는 방법은 무엇입니까?

모바일 서비스가 있는 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_etherusbnetmii

네트워크 인터페이스 이름은 아마도 데비안이 기본적으로 USB 네트워크 인터페이스에 MAC 주소( ) 기반 이름을 사용하도록 지시하는 파일을 usb0추가했기 때문일 것입니다 . 그러나 적어도 일부 전화기는 RNDIS 인터페이스를 통과하지 못하지만 드라이버는 무작위 MAC을 할당합니다. 따라서 속성 을 얻지 못하므로 기존 커널 기반 이름이 그대로 유지됩니다./lib/systemd/network/73-usb-net-by-mac.linkenx112233445566udevID_NET_NAME_MACusb0

다른 배포판에서는 장치 경로에 따라 이름을 사용할 수 있습니다. 예 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 네트워크 인터페이스를 식별하는 세 가지 가능한 방법을 알고 있었으며 2018년 5월에 네 번째 방법이 추가되었으며 최신 Android 장치에서는 최신 방법을 사용하는 것을 선호하는 것으로 보입니다.

따라서 커널이 그보다 오래된 경우 하위 수준 usbnetcdc_ether커널 모듈에는 USB 인터페이스 클래스 "기타", 하위 클래스 4, 프로토콜 1을 RNDIS USB 네트워크 인터페이스로 감지하는 코드가 포함되어 있지 않아 로드에 실패할 수 있습니다. rndis_host테더링 모드에서 전화기에 연결했을 때 올바른 USB 네트워크 프로토콜 모듈. 이 경우 네트워크 인터페이스가 전혀 감지되지 않을 수 있습니다.

(이 문제를 해결한 커널 패치를 새로운 Android 휴대폰에 연결해야 하는 시스템으로 백포트해야 했고 특정 앱이 업데이트될 때까지 커널 업그레이드를 받아들일 수 없었기 때문에 이것을 기억합니다...긴 이야기입니다.)

관련 정보