Relayium

Relayium CLI로 네트워크를 넘어 상대에게 파일 보내기

마지막 업데이트: 2026-08-07

때로는 상대의 컴퓨터가 내 것이 아니어서 SSH로 접속할 수 없을 때가 있습니다. 다른 사무실 동료에게 줄 파일, 고객에게 줄 빌드, 먼 곳의 친구에게 줄 아카이브. relayium send와 receive는 보낼 때 CLI가 발급하는 짧은 페어링 코드 하나만으로 네트워크를 넘어 그것을 두 사람 사이에 직접 옮깁니다.

연결은 P2P이며 종단간 암호화됩니다. 두 끝을 서로 소개하기 위한 아주 작은 랑데부 핸드셰이크만 Relayium을 거치며, 파일 바이트는 결코 거치지 않습니다.

시작하기 전에

아래는 모두 relayium CLI이므로, 설치하지 않았다면 먼저 설치하세요. macOS나 Linux에서는 명령어 하나로 사전 빌드된 바이너리가 PATH에 등록됩니다:

curl -fsSL https://relayium.com/install.sh | sh

먼저 send하고, 출력된 코드를 상대에게 전달하기

필요한 것

  • 두 기기 모두에 설치된 CLI. 각 터미널에서 relayium version 이 버전 문자열을 출력합니다. 셸이 “command not found”를 돌려주면 그 기기에는 아직 없는 것입니다.
  • 로그인된 보내는 쪽. relayium whoami 가 계정 이메일을 출력합니다. 페어링 코드를 발급하려면 먼저 relayium login 이 필요합니다. 받는 쪽 기기는 끝까지 로그인하지 않습니다.
  • 두 사람이 같은 시간에 터미널 앞에 있을 것. 코드의 수명은 5분이므로 발급하기 전에 시점을 맞추세요.
  • 여섯 자리 숫자를 대역 외로 전할 수단 — 통화, 채팅 창, 아니면 두 사람이 함께 있는 그 방.

relayium login으로 한 번만 로그인한 뒤에는 그냥 send하면 됩니다. CLI가 페어링 코드를 발급해 상대가 실행할 명령과 함께 출력하고 기다립니다. 그 코드를 대역 외 방식으로 전달하세요. 통화로 말하거나 채팅에 남기면 됩니다:

  1. 보내는 기기에서 한 번만 로그인합니다. relayium whoami 가 이미 계정 이메일을 출력한다면 이 단계는 건너뛰세요.

    relayium login
  2. 파일이 있는 디렉터리에서 전송을 시작합니다. CLI가 코드를 발급하고, 상대가 실행할 명령을 출력한 뒤 기다립니다.

    relayium send ./release.zip
  3. 출력된 여섯 자리 숫자를 대역 외로 상대에게 읽어 줍니다. 발급 후 5분이 지나면 더는 통하지 않습니다.

  4. 받는 기기에서 파일이 저장될 디렉터리로 이동해, 보내는 쪽에 표시된 명령을 실행합니다. 다른 곳에 저장하려면 디렉터리를 덧붙이세요.

    relayium receive 483920
    relayium receive 483920 ./downloads
  5. 받는 쪽 셸이 프롬프트로 돌아올 때까지 두 터미널을 모두 열어 두세요. 하나의 실시간 세션이라 어느 쪽이든 닫으면 전송이 멈춥니다.

성공했을 때 보이는 것

보내는 쪽은 먼저 인계 블록을 출력하고 기다린 뒤, 검증 코드와 확보한 경로를 출력합니다. 두 터미널에 같은 검증 코드가 나오고, 양쪽 모두 0으로 종료됩니다.

# 보내는 쪽
Code: 483920   (valid 5 minutes)
On the other machine:  relayium receive 483920
  not installed there?  curl -fsSL https://relayium.com/install.sh | sh
waiting for the receiver…
verification code (SAS): 271044 — not the pairing code; compare it on both ends to rule out a substituted endpoint
path: direct

SAS 코드로 검증하기

두 끝이 연결되면 양쪽 터미널에 고정된 TLS 인증서 지문에서 파생된 동일한 6자리 SAS(짧은 인증 문자열)가 출력됩니다. 이를 대역 외로 비교하세요. 통화 중에 소리 내어 읽으면 됩니다. 일치하면 지문이 바뀌지 않았고 랑데부 서비스가 어느 끝점도 사칭하지 않았음을 확인할 수 있습니다. SAS는 끝점을 인증하는 것이지 네트워크 경로의 모든 홉을 증명하는 것은 아닙니다.

가장 강한 보호를 원하면 --verify를 추가하세요. 그러면 전송은 코드가 일치함을 확인할 때까지 단 1바이트도 움직이지 않고 기다립니다.

relayium send --verify ./release.zip

직접 연결만 — 무료가 아니면 실패

전송은 두 끝 사이의 직접 연결 수립을 경쟁적으로 시도합니다. 연결이 이루어지면(적어도 한쪽에 도달 가능한 주소가 있는 일반적인 경우) 파일은 암호화된 채로 곧장 전속력으로, 비용 없이 흐릅니다.

Relayium CLI의 send/receive와 text는 P2P 직접 연결 전용입니다. 파일이나 메시지 바이트를 TURN 또는 다른 Relayium 서버로 릴레이하지 않습니다. 두 기기가 직접 연결을 맺지 못하면 릴레이로 대체하지 않고 세션이 실패합니다.

이런 상황이라면 확실한 방법은 도달 가능한 두 서버 사이의 데몬 다이렉트, SSH를 통한 push, 또는 relayium up으로 만드는 저장 링크입니다.

잘 안 될 때

실패의 대부분은 아래 네 가지에 들어갑니다. 각각 판정해 주는 출력 한 줄이나 실행할 명령이 있으니, 어느 쪽 문제인지 추측할 필요가 없습니다.

증상, 확인, 해결

보내는 쪽이 “minting a pairing code needs an account”를 내며 시작하지 않습니다.
relayium whoami
# not logged in (run `relayium login`)

그 기기에 저장된 자격 증명이 없습니다. relayium login 을 실행하고 브라우저에서 승인하세요. 그 뒤 whoami 가 계정 이메일을 출력하고 전송도 진행됩니다. 아직 발급된 코드가 없으므로 낭비된 코드도 없습니다.

받는 쪽이 코드를 입력해도 랑데부가 받아 주지 않습니다.
# 보내는 쪽 — 인계 블록에 정확한 수명이 적혀 있습니다
relayium send ./release.zip
Code: 483920   (valid 5 minutes)

코드가 만료됐습니다. 보내는 쪽에서 Ctrl-C 를 누르고 relayium send ./release.zip 을 다시 실행한 뒤, 새 인계 블록이 알려 주는 5분 안에 새 여섯 자리를 전달하세요.

두 터미널이 서로 다른 검증 코드를 출력합니다.
relayium send --verify ./release.zip

멈추고 파일을 보내지 마세요. 검증 코드가 다르다는 것은 양쪽이 고정한 인증서 지문이 어긋난다는 뜻, 곧 반대편이 생각한 그 기기가 아니라는 뜻입니다. --verify 를 붙여 다시 실행하면 그 비교 지점에서 전송을 멈추고 확인을 기다립니다. 동시에 상대가 어느 기기에 있는지 확인하세요.

“no direct connection to the peer (both ends behind strict NAT?)”.
relayium send ./release.zip
# no direct connection to the peer (both ends behind strict NAT?): …

양쪽 어느 쪽도 상대에 닿지 못했고, CLI에는 파일 바이트를 위한 릴레이 경로가 설계상 없습니다. 한쪽을 도달 가능한 주소가 있는 네트워크 — 서버나 휴대폰 핫스팟 — 로 옮기거나, relayium up 으로 올린 뒤 다운로드 링크를 건네세요.

자주 묻는 질문

페어링 코드는 어디서 나오나요?

Relayium이 발급합니다. relayium login 후 relayium send ./release.zip을 실행하면 CLI가 5분간 유효한 6자리 숫자 코드와 상대가 실행할 명령을 그대로 출력합니다. 직접 고를 수는 없습니다. 서버는 자신이 발급한 코드만 받아들이기 때문입니다.

파일이 어딘가에 업로드되나요?

아니요. 파일은 두 사람 사이에서 직접 스트리밍되며 종단간 암호화됩니다. 두 끝을 서로 소개하기 위한 아주 작은 랑데부 핸드셰이크만 Relayium을 거치며, 파일은 절대 거치지 않습니다.

연결이 안 되면 어떻게 되나요?

양쪽 모두 엄격한 NAT 뒤에 있고 도달 가능한 주소가 없다면 직접 연결을 만들 수 없어 전송이 실패합니다. CLI는 설계상 릴레이 폴백이 없습니다. 직접 경로를 쓸 수 없을 때는 도달 가능한 두 서버 사이의 데몬 다이렉트나, SSH를 통한 push를 사용하세요.

상대가 정말 맞는 사람인지 어떻게 알 수 있나요?

양쪽 터미널이 고정된 TLS 인증서 지문에서 파생된 동일한 6자리 SAS 코드를 출력합니다. 대역 외로 비교하면 지문이 바뀌지 않았고 랑데부 서비스가 어느 끝점도 사칭하지 않았음을 확인할 수 있습니다. 이는 끝점을 인증하는 것이지 네트워크 경로의 모든 홉을 증명하는 것은 아닙니다. 바이트가 움직이기 전에 이 확인을 필수로 하려면 --verify를 추가하세요.

다음 파일을 다른 네트워크에 있는 상대에게 직접 보내세요. 종단간 암호화되고 무료입니다.

CLI 받기

계속 읽기