포트포워딩
공유기에서 TCP 포트 하나를 PC로 포워딩하면, 폰은 PC 자체 인증서로 고정한 TLS 연결로 내 공인 주소에 접속합니다.
번역된 페이지입니다. 영어 문서와 내용이 다르면 영어 문서가 기준입니다. English
적합한 경우: 공유기 설정을 바꿀 수 있고, 인터넷 회선에 공인 IPv4 주소가 있을 때. 적합하지 않은 경우: 인터넷 사업자가 CGNAT(carrier-grade NAT) 뒤에 두었을 때(공유기의 WAN 주소가 100.64부터 100.127 사이로 시작하거나, IP 확인 사이트에 나오는 주소와 다를 때), 또는 회사에서 포트를 열 수 없을 때.
설정
-
네트워크에서 PC에 고정 주소를 줍니다(공유기의 DHCP 예약).
-
공유기에서 인터넷 쪽 TCP 8779를 PC 주소의 8779 포트로 포워딩합니다.
-
공인 주소를 확인합니다. 주소가 가끔 바뀐다면 공유기나 DDNS 서비스로 동적 DNS 이름을 만들고, 아래에서 그 이름을 씁니다.
-
config.toml에 주소를 적어 서버에 알려 줍니다(파일 위치는droidline doctor가 출력합니다).[remote] addresses = ["tls://203.0.113.5:8779"] # 또는 "tls://home.example.net:8779" -
droidline serve를 다시 시작합니다. -
새 폰은
droidline pair로 페어링합니다. 이미 페어링된 폰은 다음에 와이파이로 접속할 때 주소를 받아 갑니다.
TLS와 지문을 쓰는 이유
이 경로에서 폰은 PC가 직접 서명한 자체 인증서로 TLS 접속합니다. 페어링 QR 코드에 인증서의 SHA-256 지문이 들어 있어서 폰은 인증 기관 없이 인증서를 확인하고, 인터넷에서 PC를 흉내 내는 서버는 거부합니다. TLS 안에서는 다른 모든 경로와 같은 종단간 암호화가 동작합니다.
인증서는 처음 시작할 때 만들어져 서버 폴더에 보관됩니다(tls.crt, 키는 비밀 저장소에 있습니다). 인증서를 지우면 새 인증서가 만들어지고, 폰은 다시 페어링해야 합니다.
밖에서 확인하기
페어링된 폰의 와이파이를 끄고 droidline devices를 지켜보세요. 몇 초 안에 경로가 direct로 바뀌어야 합니다.