휴대폰에서 서버, NAS, 라즈베리 파이로 파일 보내기

마지막 확인

브라우저 파일 공유 도구는 대부분 받는 쪽에서도 브라우저 탭을 열어 둬야 해요. 하지만 홈 서버, NAS, 라즈베리 파이, 클라우드 VM에는 화면도 브라우저도 없어요. tosstome의 명령줄 수신함은 바로 이런 기기를 위해 만들었어요.

수신함 설정하기

서버에서(Node.js 22 이상):

tosstome listen --dir /srv/inbox

터미널에 링크와 QR 코드가 출력돼요.

휴대폰이 서버와 같은 네트워크에 있으면 파일은 그 네트워크 안에서 서버로 바로 가고 밖으로 나가지 않아요. 다른 곳에서는 두 네트워크가 허용할 때 직접 연결되고, 그렇지 않으면 아무것도 보관하지 않는 릴레이를 거쳐요.

수신함 링크는 재시작해도 그대로라서 홈 화면 아이콘을 계속 쓸 수 있어요. 나중에 링크를 다시 출력하려면 tosstome url을 실행하세요. 예전 링크를 버리고 새로 만들려면 tosstome listen --new를 실행하세요.

수신함은 어떻게 보호되나요

로컬 네트워크에도 보이게 하기

tosstome listen --nearby

--nearby를 쓰면 같은 네트워크에 있는 브라우저의 같은 네트워크 목록에도 서버가 나타나서, 집에 있는 누구나 링크 없이 보낼 수 있어요. 그 네트워크의 누구든 보낼 수 있으므로, 이렇게 받은 파일은 별도의 nearby/ 하위 폴더에 저장돼요.

서비스로 실행하기

항상 파일을 받아야 하는 기기라면, systemd 유닛, Docker 컨테이너, tmux처럼 다른 서비스를 계속 실행해 주는 방법으로 이 명령을 실행하세요. --json을 붙이면 로그나 스크립트에서 쓸 수 있도록 한 줄에 JSON 이벤트 하나(ready, offer, file, error)가 출력돼요.

[Unit]
Description=tosstome inbox
After=network-online.target

[Service]
ExecStart=/usr/bin/env tosstome listen --dir /srv/inbox --json
Restart=always
User=media

[Install]
WantedBy=multi-user.target

다른 컴퓨터의 터미널에서 보내기

tosstome send report.pdf photos.zip --to "INBOX_LINK"

링크에는 셸이 주석으로 처리하는 #이 들어 있으니 따옴표로 감싸세요.

자주 묻는 질문

서버에 공인 IP나 열린 포트가 필요한가요?

아니요. 수신함은 toss2.me로 나가는 WebSocket 연결을 만들고 거기서 기다려요. 그래서 집 공유기, NAT, 나가는 HTTPS를 허용하는 방화벽 뒤에서도 동작해요.

집에서도 파일이 인터넷을 거치나요?

아니요. toss2.me를 거치는 건 짧은 연결 설정뿐이에요. 휴대폰과 서버가 같은 네트워크에 있으면 파일은 WebRTC로 둘 사이를 바로 오가서, 속도는 Wi-Fi나 이더넷이 결정해요. 전송이 직접 이루어졌는지 릴레이를 거쳤는지는 페이지에 표시돼요.

보낼 때 서버가 오프라인이면 어떻게 되나요?

아무것도 전송되지 않고 아무것도 저장되지 않아요. 휴대폰 페이지에 수신함이 오프라인이라고 표시돼요.

다른 사람도 내 수신함으로 보낼 수 있나요?

링크를 가진 사람만 보낼 수 있어요. 링크가 유출되면 tosstome listen --new를 실행해 교체하세요. 예전 링크는 더 이상 동작하지 않아요.

파일 크기 제한이 있나요?

tosstome은 제한을 두지 않아요. 받는 브라우저는 저장하기 전까지 파일을 메모리에 들고 있어서, 수 GB 파일은 디스크에 바로 쓰는 명령줄 수신함으로 받는 게 더 좋아요.

관련 글

지금 바로 써 보세요

기기 두 대에서 toss2.me를 열어 보세요. 앱도 계정도 필요 없고, 아무것도 저장하지 않아요.

지금 파일 보내기