휴대폰은 VPN에 있고 파일 서버는 ping에 응답하는데, 파일 앱은 여전히 연결할 수 없다고 합니다. 또는 연결은 되지만 기기의 어떤 편집기도 목록에 있는 파일을 열지 못합니다. 이 둘은 서로 다른 고장이며, 어느 쪽도 터널이 깨졌다는 뜻이 아닙니다. VPN은 사설망으로 가는 경로만 제공합니다. 공유를 탐색하고, 인증하고, 문서를 다른 앱에 넘기는 일은 각각 다른 방식으로 실패하는 별개의 단계입니다. 아래는 제가 확인하는 순서와, 추측 대신 멈추는 지점입니다.

터널을 탓하기 전에 서비스를 확인하세요

ping 응답이나 NAS 웹 페이지는 라우팅만 증명할 뿐입니다. 실제로 필요한 서비스인 445의 SMB, 22의 SFTP, 443의 WebDAV가 꺼져 있거나 방화벽에 막혔거나 VPN 서브넷이 닿지 않는 인터페이스에 묶여 있을 수 있습니다. 휴대폰에서 실제 오류를 보여 주는 클라이언트로 그 포트를 시험하세요. 포트가 걸러져 있다면 서비스나 방화벽 규칙을 고쳐야 합니다. 닫힌 포트를 파일 앱이 우회할 수는 없습니다.

서버가 어떤 출발지 주소를 보는지도 확인하세요. 공유의 서브넷을 제외한 분할 터널이나, 파일 앱을 VPN 밖에 두는 앱별 터널은 연결되었지만 닿지 않는 증상을 그대로 만듭니다.

클라이언트 하나가 인증을 못 한다고 게스트 접근이나 SMB1을 켜는 지름길을 택하지 마세요. 그런 변경은 네트워크의 모든 기기에 대해 서버가 받아들이는 범위를 넓힐 뿐이고, 근본 원인이 라우팅이나 이름 해석이면 아무것도 고치지 못합니다.

프로토콜을 스스로 말하는 파일 앱을 쓰세요

Android에는 네트워크 공유용 브라우저가 내장되어 있지 않으므로 클라이언트 앱은 세부 사항이 아니라 실제 의존성입니다. 실제로 쓰는 프로토콜을 구현하고 아직 유지되는 것을 고르세요. 더 이상 쓰지 않는 Android 버전용으로 만든 클라이언트는 네트워크 장애처럼 보이는 방식으로 실패합니다.

DNS와 라우팅을 분리하려고 서버를 IP로 한 번 시험해 보세요. IP는 되고 이름이 안 되면, 휴대폰이 사설 영역을 보지 못하는 DNS 서버로 해석하고 있는 것입니다.

받는 앱이 얻는 것은 URI이지 경로가 아닙니다

파일 앱이 DocumentsProvider를 구현하면 Android의 Storage Access Framework가 그 내용을 시스템 선택기에 표시할 수 있고, 고른 앱은 content:// URI와 권한을 받습니다. 그 권한은 파일 시스템 경로가 아니므로 원시 경로를 고집하는 편집기는 문서를 열지 못합니다. Android 문서 접근 가이드가 이 모델을 설명합니다.

다른 방법은 의도적인 복사입니다. 파일을 편집기 자체 저장소로 가져와 고치고 다시 올리는 것입니다. 좋은 흐름이지만 두 번째 사본과 충돌 문제가 생기므로, 기차에서 편집을 시작하기 전에 어느 쪽을 정본으로 할지 정하세요.

앱별 VPN 정책도 살펴볼 만합니다. 네트워크 읽기를 수행하는 패키지는 편집기가 아니라 공급자 앱인 경우가 많으므로, 아이콘으로 판단하지 말고 올바른 패키지를 터널에 넣으세요.

읽기, 쓰기, 권한 유지를 따로 시험하세요

폴더 목록은 읽기 경로만 증명합니다. 무해한 시험 파일로 목록, 열기, 편집, 저장, 그리고 같은 파일을 데스크톱 클라이언트에서 다시 여는 것까지 전 과정을 해 보세요.

재부팅 후 권한이 남는지 지켜보세요. 앱이 영구화하지 않으면 저장소 권한은 일시적이며, 어떤 편집기는 매번 다시 묻고 어떤 편집기는 조용히 실패해 오래된 사본을 보여 줍니다. 저장이 성공한 것 같으면 서버에서 수정 시간으로 확인하세요.

Android의 URI 권한과 서버의 인가를 분리해 두세요. 문서를 열 수 있다는 사실은 그 뒤의 SMB 계정에 대해 아무것도 말해 주지 않습니다.

마운트한 공유는 필요한 경우에만 남겨 두세요

루트 수준 CIFS 마운트와 커널 파일 시스템 모듈은 아직 존재하며 모든 앱에 로컬 폴더라는 착각을 줍니다. 하지만 root가 필요하고, 커널 변경에 깨지며, 네트워크 장애를 파일 시스템 계층 안에 숨겨 진단을 어렵게 만듭니다.

네트워크가 바뀌어도 마운트가 유지되는지, 그 위에 작업 흐름을 만들기 전에 확인하세요. 책상 위 노트북에서 마운트한 공유는 Wi-Fi와 모바일을 오가는 휴대폰과 다르게 동작하며, 오래된 마운트는 앱을 멈추게 할 수 있습니다.

그래도 막혔다면 목록을 순서대로 진행하고 처음 실패하는 단계에서 멈추세요. 포트 도달, 프로토콜 클라이언트 설치, 공유 인증, 선택기에 파일 표시, 편집기가 URI 수락, 저장이 서버에 도착. 그 단계가 어느 구성 요소를 고칠지 알려 주며, 그것이 터널인 경우는 드뭅니다.

관련 글