Android 휴대폰으로 인터넷을 스트리밍하기 위해 USB 네트워크 인터페이스를 어떻게 생성합니까?

Android 휴대폰으로 인터넷을 스트리밍하기 위해 USB 네트워크 인터페이스를 어떻게 생성합니까?

USB를 통해 내 컴퓨터에서 내 휴대폰(Android 실행)으로 인터넷을 전송하려고 합니다. 이를 구현하는 방법은 모르지만 USB 네트워크 인터페이스가 필요하다는 것은 알고 있습니다 usb0. 예를 들어 이 인터페이스는 전화기를 연결할 때 자동으로 생성되지 않습니다.

이 USB 네트워크 인터페이스를 만드는 방법은 무엇입니까? Linux에서 이 작업을 수행할 수 있습니까, 아니면 Android 휴대폰에서 수행해야 합니까?

노트: 전화기에서 USB 테더링을 활성화하면 Linux에서 해당 USB 인터페이스가 생성됩니다. 그러나 이는 전화기를 네트워크 장치(또는 게이트웨이?)로 사용하고 내 전화기에서 내 컴퓨터로 인터넷을 전달하도록 자동으로 구성됩니다. 이는 내가 원하는 것과 반대입니다.

답변1

실제로 USB 테더링은 휴대폰과 PC 간에 대칭적인 연결을 생성합니다. 트래픽이 흐를 수 있는 방향은 네트워크 인터페이스 구성과 각 끝에서 실행되는 서비스에 의해서만 정의됩니다.

휴대폰에서 PC로 트래픽 흐름을 얻으려면 다음을 수행할 수 있습니다.

  • DHCP를 실행하고 인터넷 연결을 공유하도록 PC를 구성하십시오.
  • Android 휴대폰에서 USB 테더링을 활성화합니다.
  • Android 휴대폰에서 dhcp 클라이언트를 루트로 실행합니다.

netcfg usb0 dhcp

또는

dhclient usb0

휴대폰마다 인터페이스 이름 rndis0이 다를 수 있습니다. rmnet0이는 를 통해 찾을 수 있습니다 ifconfig.

문제가 발생하면 g_ether전화기에 커널 모듈을 수동으로 로드하는 것도 시도해 볼 가치가 있습니다.

답변2

글쎄요, 제 경험을 여러분과 공유할 수 있습니다.

휴대폰(Samsung J1(Android 5.1.1))뿌리): 긍정적인개발자 옵션>> 활성USB 디버깅>> 가고 싶어요앵커리지에서 네트워크 및 휴대용 이벤트 존으로 연결 앵커리지(번역해서 미안해요, 저는 쿠바 출신이에요)USB 네트워크>> 이렇게 하면 가상 터미널 에뮬레이터(apk)를 열고 액세스합니다.뿌리( su) 네트워크 인터페이스를 확인하는 데 사용했고 ifconfig"new"라는 인터페이스를 반환했습니다.rndis0그리고IP 192.168.42.129

Debian이 설치된 PC에서: 터미널을 열고 액세스합니다.뿌리sudo( 매번 넣을 필요는 없습니다 ) >> ifconfig"new"라는 인터페이스를 반환합니다.USB0그리고IP 192.168.42.111

휴대폰에서 PC로 또는 그 반대로 ping을 실행하면 모든 것이 정상일 것입니다(양쪽 모두에서 답을 얻었습니다). 이제 휴대폰에 게이트웨이를 제공할 시간이므로 휴대폰의 터미널 에뮬레이터에서 route add default gw 192.168.42.111 dev rndis0>> 여기에 입력하세요 . PC IP 이제 터미널 에뮬레이터에서 Google DNS(IP 및 이름별)를 ping할 수 있거나 인터넷 연결에 프록시 서버 구성이 필요하지 않은 경우 USB 인터넷 케이블을 통해 휴대폰에서 ping할 수 있어야 합니다.

추신: 컴퓨터와 휴대폰이 자동으로 IP를 획득하지 못하는 경우 다음 명령을 사용하십시오.

컴퓨터에서:

ifconfig usb0 10.42.0.1 netmask 255.255.255.0
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE  

전화:

ifconfig rndis0 10.42.0.2 netmask 255.255.255.0
busybox route add default gw 10.42.0.1 dev rndis0

DNS(스틸 폰)를 구성합니다.

mount -o remount, rw /system
echo 'nameserver 192.168.6.40' > /system/etc/resolv.conf
mount -o remount, ro /system
iptables -t nat -I OUTPUT 1 -p udp --dport 53 -j DNAT --to-destination 192.168.6.40:53 

답변3

안드로이드 8.0

ifconfig usb0 192.168.225.3 netmask 255.255.255.0
ndc network create 9792
ndc network interface add 9792 usb0
ndc network route add 9792 usb0 0.0.0.0/0 192.168.225.1
ndc resolver setnetdns 9792 8.8.8.8 8.8.4.4
ndc network default set 9792

관련 정보