macOS
Synology NAS
Tailscale
#NFS
#VPN
#autofs
#홈서버
#원격마운트
🗺️ 시작 — 세 가지 욕망
노트북을 들고 카페에 앉았는데, 집에 있는 NAS가 바로 옆에 있는 것처럼 드나들 수 있으면 좋겠다는 생각을 해본 적 있으신가요?
저도 그랬어요. 정확히 세 가지 욕망이 있었어요.
첫 번째, 어디서든 내 파일에 접근하고 싶다는 것. 카페에서, 사무실에서, 해외에서도 마치 로컬 폴더 열듯이 NAS 파일을 쓰고 싶었어요. 두 번째, SMB 말고 NFS를 쓰고 싶다는 것. macOS와 리눅스 계열에서 NFS는 소규모 파일 처리에서 10~30% 더 빠르고, 무엇보다 유닉스 퍼미션을 자연스럽게 다룰 수 있거든요. 세 번째, 매번 같은 설정이 유지되길 바랐다는 것. 네트워크가 바뀌어도, 재부팅해도, macOS가 업데이트되어도 아무것도 건드리지 않고 폴더에 접근만 하면 되는 환경을 원했어요.
문제는 NFS의 근본적인 특성에 있었어요.
🔑 NFS의 벽 — IP 기반 인증
NFS는 “누구에게 공유할 것인가”를 IP 주소로 결정해요. NAS에서 /etc/exports에 허용할 클라이언트 IP를 등록하면 그 IP에서만 접근 가능한 구조예요.
그런데 노트북은 이동하는 기기예요. 카페에선 카페 IP, 사무실에선 사무실 IP, 테더링하면 또 다른 IP. 접속할 때마다 NAS 설정을 바꿔줘야 하는 건 현실적이지 않죠.
“MAC 주소로 인증하면 안 되나요?”라고 물을 수 있는데, MAC 주소는 OSI 2계층(L2)이고 NFS는 7계층(L7)에서 동작해요. 서로 다른 세계의 언어라서 NFS가 MAC 주소를 인식할 방법이 없어요.
💡 해답 — Tailscale이 고정 IP를 만들어준다
이 문제를 깔끔하게 풀어주는 게 Tailscale이에요. Tailscale은 WireGuard 기반 메시 VPN인데, 핵심은 각 기기에 100.x.x.x 대역의 영구 고정 IP를 부여한다는 거예요.
맥북이 카페에 있든 해외에 있든, Tailscale IP는 항상 같아요. 그러면 NAS의 /etc/exports에 이 고정 IP 하나만 등록해두면 어디서든 NFS 연결이 가능해지는 거죠.
예를 들어 이런 구조가 돼요.
| 기기 | Tailscale IP | NAS 접근 방식 |
|---|---|---|
| MacBook Pro | 100.64.0.2 |
NFS via Tailscale |
| Mac mini | 100.64.0.3 |
NFS via 로컬 네트워크 |
| Synology NAS | 100.64.0.10 |
— |
맥미니는 NAS와 같은 네트워크에 있어서 로컬 IP(192.168.1.10)로 직접 연결하면 돼요. Tailscale을 경유할 필요가 없으니 한 단계 더 빨라요.
⚙️ NAS 세팅 — Synology에서 Tailscale 살리기
Synology NAS에 Tailscale을 올리는 건 생각보다 까다로웠어요. DSM 7에서 패키지는 비 root로 실행되는데, Tailscale의 커널 모드(TUN 인터페이스)를 쓰려면 root 권한이 필요하거든요.
userspace 모드로 돌리면 NFS가 Tailscale IP를 인식하지 못해서 Permission denied가 나와요. 그래서 부팅 시 자동으로 TUN 모듈을 로드하고, tailscaled를 root로 직접 띄우는 rc.d 스크립트를 작성했어요.
#!/bin/bash
# /usr/local/etc/rc.d/S01-tailscale-tun.sh
# TUN 커널 모듈 로드 + root tailscaled 실행
# TUN 모듈이 없으면 로드
if ! lsmod | grep -q "^tun "; then
modprobe tun 2>/dev/null || insmod /lib/modules/tun.ko
fi
# /dev/net/tun이 없으면 생성
if [ ! -c /dev/net/tun ]; then
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 0666 /dev/net/tun
fi
# DSM 패키지 중지 → root로 직접 실행
/usr/syno/bin/synopkg stop Tailscale 2>/dev/null
killall tailscaled 2>/dev/null
sleep 2
TAILSCALED=/volume2/@appstore/Tailscale/bin/tailscaled
STATE_FILE=/volume2/@appdata/Tailscale/tailscaled.state
$TAILSCALED --state=$STATE_FILE --tun=tailscale0 &
🛡️ DSM 업데이트 — exports 자동 복구
Synology NAS는 DSM이 업데이트되면 /etc/exports를 초기화할 수 있어요. 우리가 추가한 Tailscale IP 항목이 사라지는 거죠. 그래서 rc.d 스크립트에 자동 복구 로직을 넣었어요.
repair_nfs_exports() {
local changed=0
MACBOOK_TS_IP="100.64.0.2" # MacBook Tailscale 고정 IP
NFS_SHARES=("/volume1/Data" "/volume2/Work" "/volume2/Software")
for share in "${NFS_SHARES[@]}"; do
if ! grep -q "${share}.*${MACBOOK_TS_IP}" /etc/exports; then
echo -e "${share}\t${MACBOOK_TS_IP}(rw,async,all_squash,sec=sys)" >> /etc/exports
changed=1
fi
done
[ $changed -eq 1 ] && exportfs -ra
}
매 부팅마다 /etc/exports를 체크해서, Tailscale IP 항목이 빠져 있으면 자동으로 다시 넣어줘요. 이 로직 덕분에 DSM 업데이트 후에도 NFS 연결이 끊기지 않아요.
📂 macOS autofs — 접근만 하면 자동 마운트
마지막 퍼즐 조각은 macOS 쪽이에요. 매번 sudo mount 명령을 치고 싶지 않잖아요? macOS의 autofs를 사용하면 폴더에 접근하는 순간 자동으로 마운트되고, 안 쓰면 자동으로 해제돼요.
맥북의 /etc/auto_nfs는 이렇게 생겼어요.
# /etc/auto_nfs — MacBook (Tailscale 경유)
NAS_Work -fstype=nfs,resvport 100.64.0.10:/volume2/Work
NAS_Data -fstype=nfs,resvport 100.64.0.10:/volume1/Data
NAS_Software -fstype=nfs,resvport 100.64.0.10:/volume2/Software
그리고 /etc/auto_master에 한 줄만 추가하면 끝이에요.
/Volumes auto_nfs
sudo automount -vc로 적용하면, 이제부터 ls /Volumes/NAS_Work만 치면 자동으로 마운트돼요. 맥미니는 로컬 IP(192.168.1.10)를 쓰니까 Tailscale 없이도 동작하고, 같은 네트워크라 속도도 더 빨라요.
-o resvport 옵션이 필수예요. 이게 없으면 Synology NAS가 연결을 거부해요.🪟 Windows는 어떻게?
Windows PC는 사무실에 고정되어 있어서 Tailscale 없이 SMB 네트워크 드라이브로 연결해요. net use X: \\192.168.1.10\Data /persistent:yes 한 줄이면 끝이죠. 이동하지 않는 기기에 VPN을 설치할 이유가 없고, 회사 네트워크 정책과 충돌할 수도 있으니까요.
| 항목 | macOS (NFS) | Windows (SMB) |
|---|---|---|
| 프로토콜 | NFS + autofs 자동마운트 | SMB 네트워크 드라이브 |
| 인증 방식 | IP 기반 (Tailscale 고정 IP) | 사용자/비밀번호 |
| 외부 접근 | Tailscale 경유 (어디서든) | 불가 (사무실 전용) |
| 소규모 파일 성능 | NFS가 10~30% 빠름 | 표준 |
🏁 정리 — 지도 위의 세 갈래 길
결국 완성된 구조는 이래요. 맥북은 Tailscale 터널을 타고 어디서든 NFS로, 맥미니는 로컬 네트워크에서 NFS로, 윈도우 PC는 SMB로. 세 기기 모두 NAS를 로컬 폴더처럼 쓸 수 있게 됐어요.
처음의 세 가지 욕망을 돌아보면 — 어디서든 접근은 Tailscale이, 최고 성능의 NFS는 autofs가, 일정한 설정 유지는 rc.d 자동 복구 스크립트가 각각 해결해줬어요. 한번 세팅해두면 그 뒤로는 아무것도 신경 쓸 필요가 없는, “투명한 인프라”가 된 거죠.
• NFS + Tailscale = 이동하는 기기에서도 고정 IP로 NFS 인증 해결
• autofs = 접근만 하면 자동 마운트, 수동 작업 제로
• rc.d 자동 복구 = DSM 업데이트가 exports를 날려도 부팅 시 자동 복원
• 맥미니 = 로컬 IP로 직접 NFS (Tailscale 불필요, 더 빠름)
• Windows = SMB로 충분 (고정 위치, VPN 불필요)