Skip to Content
원격 접근포트 구성

포트 구성

.ironflock/ 디렉토리에 port-template.yml 파일을 생성하여 앱이 원격 접근을 위해 노출하는 서비스를 정의합니다.

기본 예시

ports: - name: Web Interface port: 5000 main: true protocol: https

이를 통해 포트 5000이 원격 접근에 사용 가능하게 됩니다. 사용자는 디바이스의 앱 설정에서 터널을 활성화할 수 있습니다.

전체 예시

ports: - name: Web Interface port: 1100 main: true protocol: http - name: Video Stream port: 1200 protocol: http - name: Remote Desktop port: 5900 protocol: tcp - name: LoRaWAN Gateway port: 1700 protocol: udp

필드 참조

필드필수설명
name디바이스 앱 설정에 표시되는 레이블
port서비스가 수신 대기하는 로컬 포트 번호
main아니오true이면 디바이스 앱 목록의 빠른 접근 아이콘에 이 포트가 사용됨
protocol아니오http(기본값), https, tcp, 또는 udp

주입되는 환경 변수

선언한 모든 포트에 대해 플랫폼이 앱의 컨테이너에 환경 변수를 주입하므로, 주소를 하드코딩하지 않고도 코드에서 서비스가 실제로 접근 가능한 위치를 확인할 수 있습니다:

변수설명
DEVICE_LAN_IP로컬 네트워크에서의 디바이스 IP 주소
DEVICE_PORT_FOR_<port>선언한 포트가 로컬 네트워크에 게시되는 디바이스의 포트
REMOTE_PORT_FOR_<port>터널이 활성화된 동안 터널 서버가 할당하는 공개 포트 (TCP 및 UDP)
REMOTE_PORT_FOR_<port>_CLOUD디바이스가 클라우드를 통해 터널을 전달하는 IronFlock 인스턴스에서 실행될 때의 인터넷 연결 포트 (TCP 및 UDP)

<port>port-template.yml에 선언한 포트 번호입니다. 위의 Remote Desktop 예시의 경우, 앱은 DEVICE_PORT_FOR_5900을 받고 터널이 활성화된 동안에는 REMOTE_PORT_FOR_5900도 받게 됩니다.

여러 앱이 동일한 디바이스에서 동시에 실행될 수 있으므로, 선언된 포트는 디바이스의 사용 가능한 포트에 자동으로 매핑됩니다. 선언한 포트가 그대로 사용된다고 가정하지 말고, 항상 주입된 값으로 로컬 네트워크 주소를 구성하세요:

import os lan_ip = os.environ.get("DEVICE_LAN_IP") lan_port = os.environ.get("DEVICE_PORT_FOR_5900") # 서비스는 로컬 네트워크에서 {lan_ip}:{lan_port}로 접근할 수 있습니다

이 변수들은 컨테이너가 시작될 때 설정됩니다. 터널 포트는 앱 실행 중에 변경될 수 있으므로(예: 터널 재연결 시), 현재 값은 /data/env/<VARIABLE_NAME>.txt 파일로도 항상 최신 상태로 유지되며, IronFlock SDK가 이를 자동으로 읽습니다.

프로토콜 작동 방식

HTTP / HTTPS

웹 기반 서비스를 위한 프로토콜입니다. IronFlock이 디바이스의 로컬 포트로 트래픽을 프록시하는 공개 URL을 생성합니다. 사용자가 브라우저에서 URL을 엽니다.

TCP

VNC(원격 데스크톱) 또는 직접 소켓 연결과 같은 프로토콜을 위한 것입니다. IronFlock이 터널 서버에 원격 포트를 할당하고 이를 REMOTE_PORT_FOR_<port>로 앱에 노출합니다.

UDP

LoRaWAN 통신 또는 VPN 터널과 같은 프로토콜을 위한 것입니다. TCP와 유사하게 원격 포트가 할당되고 REMOTE_PORT_FOR_<port>로 노출됩니다.

보드에 임베드

Embed Widget을 사용하여 디바이스의 원격 접근 터널을 보드에 직접 임베드할 수 있습니다. 이를 통해 다음이 가능한 원활한 경험을 만들 수 있습니다:

  • 모든 디바이스에서 글로벌 데이터 모니터링
  • 임베드된 웹 UI를 통해 개별 디바이스와 상호 작용

모두 동일한 대시보드 내에서.

port-template.yml에서 원격 접근을 구성한다고 해서 터널이 자동으로 활성화되지는 않습니다. 권한이 있는 사용자만 디바이스에서 터널을 활성화하거나 비활성화할 수 있습니다.

Last updated on