공유하기

st 를 실행하면 주소와 QR이 나옵니다.

st

에이전트가 백그라운드로 뜨고 터미널은 바로 돌아옵니다. 화면에는 주소와 토큰, 둘을 합친 QR 코드가 나옵니다.

QR을 찍거나 토큰이 담긴 링크를 한 번 열면 됩니다. 서버가 그 자리에서 토큰을 쿠키로 바꾸고 주소에서 지웁니다 — 비밀이 URL에, 그리고 로그에 남지 않도록.

QR에는 토큰이 담긴 링크 자체가 아니라 https://link.sophonz.io/j#<그 링크>가 들어 있습니다(st 0.3.72 이상). sophonz 앱이 설치된 폰에서는 앱으로 열리고, 앱이 없는 폰에서는 브라우저 터미널이 열립니다. 링크는 # 뒤에 있고 브라우저는 이 부분을 서버로 보내지 않으므로, 토큰은 여전히 내 장치로만 갑니다. 폰이 link.sophonz.io에 접속할 수 없다면 SOPHONZ_QR_DIRECT=1로 링크 자체를 다시 QR에 넣을 수 있습니다.

출력

urlCloudflare가 내준 주소(또는 장치의 tailnet이나 릴레이 주소, st route 참고). st exit 후 st를 실행하면 새로 생기고, st restart와 st upgrade는 그대로 둡니다
token이 세션의 공유 비밀
link로그인했을 때만. 바뀌지 않는 주소입니다

Cloudflare 문서는 quick tunnel이 SSE를 지원하지 않는다고 적습니다. st 0.3.67부터는 이 주소로 열어도 에이전트 상태, 채팅, 장치 지표가 바로 오도록 우회합니다. 그 전 버전에서는 Cloudflare 터널이 이 흐름을 붙잡아 두어 늦게 옵니다.

Pro: sophonz 릴레이

무료에서 url은 Cloudflare quick tunnel 주소이고, st exit 후 st를 실행할 때마다 바뀝니다. Cloudflare는 이 주소를 테스트와 개발용으로 내주며 가동 보장이 없다고 적습니다. 제한은 실행 방식에 모아 두었습니다. Pro에는 sophonz가 운영하는 릴레이 서버가 포함됩니다. 릴레이를 거치면 장치의 주소가 https://quiet-otter-lamp.relay.sophonz.io 같은 세 단어 주소로 고정되어, 다시 실행해도 바뀌지 않습니다.

st 0.4.1부터는 Pro 계정에 로그인한 장치가 릴레이 주소와 토큰을 스스로 받아 옵니다. 입력할 것은 없습니다. 0.4.0 이하라면 st upgrade로 올립니다.

st relay         # 지금 어떤 경로로 접속하는지
st route relay   # sophonz 릴레이를 고르기
st relay reset   # Cloudflare quick tunnel을 고르고 거기에 머물기

st relay reset은 직접 넣은 릴레이를 지우고 quick tunnel을 고릅니다. st route tailscale로 tailnet을 골라 두었다면 그 선택은 그대로 둡니다.

직접 고른 것이 먼저입니다. st route로 quick tunnel이나 tailnet을 골랐거나, 직접 운영하는 릴레이를 st relay set <릴레이 주소> --token <토큰>으로 넣었다면 st는 그것을 그대로 둡니다. --token을 빼면 ST_RELAY_TOKEN에서 읽고, 그것도 없으면 입력하라고 묻습니다. st relay와 st route는 sophonz 릴레이를 sophonz의 것으로 표시하고, 토큰은 보여 주지 않습니다.

  • Pro가 끝나면 장치는 quick tunnel로 돌아갑니다.
  • 계정에서 지운 장치는 로그아웃하고 공유를 끝냅니다. 터미널 세션은 남습니다.
  • 로그아웃하거나 다른 계정으로 로그인하면, 이전 계정으로 받은 자동 릴레이는 더 이상 쓰지 않습니다.
  • 시작할 때 릴레이가 장치를 받지 않으면 다음 보고 때까지 quick tunnel로 열리고, st route가 이유를 알려 줍니다.

릴레이로 접속하는 장치에서 무엇이 확인되었는지는 실행 방식에 있습니다.

자주 쓰는 것

st --session work     # 이름 붙은 세션을 공유
st --no-tunnel        # 공개 주소 없이, 이 장치에서만
st url                # 링크를 다시 출력
st ls                 # 실행 중인 세션과 거기 붙은 기기
st exit               # 공유 중단

st ls 는 실행 중인 세션을 각 세션에 붙은 기기와 함께 보여 주고, 이어서 다른 장치의 세션도 보여 줍니다(st 0.3.98). st attach <장치>/<세션>으로 그중 하나에 이 터미널을 붙입니다. Enter는 그 세션에 붙고, d 는 기기 하나를 끊으며(세션에서 누르면 그 세션의 기기를 모두 끊습니다), r 은 새로 고칩니다.