Android/ADB

ADB를 활용한 네트워크 및 포트 포워딩

임베디드 친구 2025. 2. 21. 09:12
728x90
반응형

ADB를 활용한 네트워크 및 포트 포워딩

Android Debug Bridge(ADB)는 Android 기기와 PC 간의 연결을 제공하는 강력한 도구입니다. 이를 활용하면 네트워크 관련 작업을 수행할 수 있으며, 특히 포트 포워딩 기능을 통해 개발 및 디버깅을 보다 효율적으로 할 수 있습니다. 이번 포스팅에서는 ADB를 활용한 네트워크 및 포트 포워딩 방법을 설명하고, 각 명령어의 동작을 예제와 함께 소개하겠습니다.


1. ADB를 활용한 포트 포워딩

포트 포워딩(Port Forwarding)은 특정 포트를 다른 포트로 매핑하는 기술로, ADB에서는 adb forwardadb reverse 명령어를 이용하여 이를 수행할 수 있습니다.

1.1 adb forward : PC에서 Android 기기로 포트 포워딩

adb forward 명령어를 사용하면 PC의 특정 포트를 Android 기기의 포트로 포워딩할 수 있습니다. 이는 주로 개발자가 기기에서 실행되는 애플리케이션과 통신하는 데 유용합니다.

사용법

adb forward tcp:<local_port> tcp:<device_port>

예제

PC의 8080 포트를 Android 기기의 5000 포트로 포워딩하는 경우:

adb forward tcp:8080 tcp:5000

이제 PC의 localhost:8080에 접근하면 Android 기기의 5000 포트로 요청이 전달됩니다.

포트 포워딩 해제

설정한 포워딩을 제거하려면 다음 명령어를 사용합니다.

adb forward --remove tcp:<local_port>

또는 모든 포워딩을 해제하려면 다음 명령어를 사용합니다.

adb forward --remove-all

1.2 adb reverse : Android 기기에서 PC로 포트 포워딩

adb reverse 명령어를 사용하면 Android 기기의 특정 포트를 PC의 포트로 포워딩할 수 있습니다. 이는 주로 Android 앱이 로컬 서버(예: 개발 중인 웹 서버)에 연결할 때 유용합니다.

사용법

adb reverse tcp:<device_port> tcp:<local_port>

예제

Android 기기의 6000 포트를 PC의 8080 포트로 포워딩하는 경우:

adb reverse tcp:6000 tcp:8080

이제 Android 기기의 localhost:6000에 접속하면 PC의 8080 포트로 요청이 전달됩니다.

포트 포워딩 해제

설정한 포워딩을 제거하려면 다음 명령어를 사용합니다.

adb reverse --remove tcp:<device_port>

또는 모든 포워딩을 해제하려면 다음 명령어를 사용합니다.

adb reverse --remove-all

2. ADB를 활용한 네트워크 상태 확인

네트워크 상태를 확인하고 문제를 해결하기 위해 Android 기기의 네트워크 설정을 확인하는 것이 중요합니다. ADB를 활용하면 현재 네트워크 상태를 쉽게 확인할 수 있습니다.

2.1 adb shell netcfg 또는 adb shell ip a : 네트워크 상태 확인

기기의 네트워크 인터페이스 정보를 확인하려면 adb shell netcfg 또는 adb shell ip a 명령어를 사용할 수 있습니다.

사용법

adb shell netcfg

또는

adb shell ip a

출력 예시 (adb shell ip a 실행 시)

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default 
    inet 192.168.0.101/24 brd 192.168.0.255 scope global wlan0
    valid_lft forever preferred_lft forever

위와 같은 결과를 통해 기기의 네트워크 인터페이스(wlan0, lo 등)와 IP 주소를 확인할 수 있습니다.


2.2 adb shell ping <ip> : 네트워크 연결 확인

Android 기기에서 특정 IP 주소로 네트워크 연결을 확인하려면 ping 명령어를 사용할 수 있습니다.

사용법

adb shell ping <ip>

예제

Google DNS(8.8.8.8)로 핑 테스트를 실행하는 경우:

adb shell ping 8.8.8.8

정상적으로 네트워크가 연결되어 있다면 다음과 같은 응답을 받습니다.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=10.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=10.2 ms

만약 연결이 안 된다면 네트워크 상태를 다시 확인하고 설정을 점검해야 합니다.


3. 정리

이번 포스팅에서는 ADB를 활용한 네트워크 및 포트 포워딩 방법을 살펴보았습니다.

  • adb forward 명령어를 통해 PC에서 Android 기기로 포트 포워딩할 수 있습니다.
  • adb reverse 명령어를 통해 Android 기기에서 PC로 포트 포워딩할 수 있습니다.
  • adb shell netcfg 또는 adb shell ip a를 사용하여 네트워크 상태를 확인할 수 있습니다.
  • adb shell ping <ip> 명령어를 통해 네트워크 연결을 테스트할 수 있습니다.

이러한 명령어를 활용하면 Android 개발 및 디버깅을 보다 원활하게 진행할 수 있습니다. 필요에 따라 ADB의 다양한 네트워크 기능을 추가로 학습해 보시기 바랍니다.

728x90
반응형