![Linux 컴퓨터에서 Android 휴대폰으로 "USB 테더링"으로 생성된 네트워크에 연결하는 방법은 무엇입니까?](https://linux55.com/image/206206/Linux%20%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C%20Android%20%ED%9C%B4%EB%8C%80%ED%8F%B0%EC%9C%BC%EB%A1%9C%20%22USB%20%ED%85%8C%EB%8D%94%EB%A7%81%22%EC%9C%BC%EB%A1%9C%20%EC%83%9D%EC%84%B1%EB%90%9C%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
모바일 서비스가 있는 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
네트워크 인터페이스 이름은 아마도 데비안이 기본적으로 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 네트워크 인터페이스를 식별하는 세 가지 가능한 방법을 알고 있었으며 2018년 5월에 네 번째 방법이 추가되었으며 최신 Android 장치에서는 최신 방법을 사용하는 것을 선호하는 것으로 보입니다.
따라서 커널이 그보다 오래된 경우 하위 수준 usbnet
및 cdc_ether
커널 모듈에는 USB 인터페이스 클래스 "기타", 하위 클래스 4, 프로토콜 1을 RNDIS USB 네트워크 인터페이스로 감지하는 코드가 포함되어 있지 않아 로드에 실패할 수 있습니다. rndis_host
테더링 모드에서 전화기에 연결했을 때 올바른 USB 네트워크 프로토콜 모듈. 이 경우 네트워크 인터페이스가 전혀 감지되지 않을 수 있습니다.
(이 문제를 해결한 커널 패치를 새로운 Android 휴대폰에 연결해야 하는 시스템으로 백포트해야 했고 특정 앱이 업데이트될 때까지 커널 업그레이드를 받아들일 수 없었기 때문에 이것을 기억합니다...긴 이야기입니다.)