Şu tarihte

Tailscale ile Dosya Paylaşımı: Taildrop ve Taildrive

Tailscale üzerinden bilgisayardaki bir PDF'i telefona atmak için Taildrop'ı, evdeki diskte duran dosyalara uzaktan erişmek için Taildrive'ı kullanabiliyoruz. İkisi de henüz alpha aşamasında. Tailnet kurulumunu önceki yazıda anlatmıştım.

Taildrop

Taildrop'ın yaptığı iş AirDrop ve LocalSend'e benziyor: dosyayı seçip başka bir cihaza gönderiyoruz. Cihazların yan yana veya aynı yerel ağda olması gerekmiyor; Tailscale üzerinden uzaktaki cihazımıza da dosya atabiliyoruz.

Yalnızca kendi cihazlarımız arasında çalışıyor. Aynı tailnet'te olsa bile başka bir kullanıcının cihazına dosya gönderemiyoruz. Tag'li cihazlar da dosya gönderip alamıyor. Kullanmaya başlamadan önce yönetim panelinde Send Files seçeneğini açmak gerekiyor.

macOS, Windows, iOS ve Android'de dosya göndermek için sistemin paylaş menüsü kullanılıyor. Linux'ta ise terminalden ilerliyoruz:

tailscale file cp --targets              # gönderilebilecek cihazlar
tailscale file cp ./fatura.pdf telefon:

sudo tailscale file get ~/Downloads      # inbox'taki dosyaları al
sudo tailscale file get --loop --conflict=rename ~/Downloads

Hedef cihazın adının sonundaki : işaretini unutmayın. Komutların diğer seçenekleri CLI referansında var.

Taildrive

Taildrive: Raspberry Pi üzerindeki paylaşımlara Mac, iPhone ve Linux cihazlardan tailnet içinden erişim

Taildrive bir klasörü WebDAV üzerinden paylaşıma açıyor. Klasör paylaşmak için Linux, macOS veya Windows gerekiyor. iOS ve Android'den ise bu paylaşımlara bağlanabiliyoruz.

Politika dosyasının nodeAttrs bölümünde, paylaşan cihaz için drive:share, bağlanan cihaz için drive:access açık olmalı. Kimin hangi klasörü okuyup yazabileceğini grants belirliyor. Ayrıca bir WebDAV şifresi tanımlamıyoruz.

Örneğin Linux'ta iki klasörü paylaşmak için:

sudo tailscale drive share aile /srv/depo/aile
sudo tailscale drive share yedek /srv/depo/yedek
tailscale drive list

Paylaşımlara http://100.100.100.100:8080 adresinden erişiyoruz. macOS'ta Finder'da Cmd + K ile açılan pencereye bu adresi yazmak yeterli; bağlantı türü olarak Guest seçiliyor. Linux'ta davfs2 ile bağlamak için:

sudo mount -t davfs http://100.100.100.100:8080 /mnt/taildrive

Windows, Android ve NAS bağlantı adımları Taildrive dokümanında var. Paylaşan cihaz kapanınca dosyalara erişim de kesiliyor. Taildrive dosyaların başka bir kopyasını tutmadığı için yedeklemeyi ayrıca yapmak gerekiyor.

Tailnet üzerinden alternatifler

Tailnet üzerinde alıştığımız dosya paylaşım araçlarını da kullanabiliriz. Dosyaların cihazlar arasında eşitlenmesi veya tarayıcıdan açılması gerekiyorsa şu seçenekler var:

AraçNe içinNot
SyncthingCihazlar arasında senkronizasyonHer cihazda kopya bulunur, çevrimdışı da açılabilir
Samba / NFSDosya yöneticisinden ağ paylaşımına erişimErişimi tailnet ile sınırlamak gerekir
Serve + File BrowserTarayıcıdan dosyalara erişimHTTPS sertifikası gerekir

Syncthing'de cihaz adresini MagicDNS adıyla sabitleyip relay'i kapatabiliriz. File Browser gibi bir web arayüzü 8081 portunda çalışıyorsa, onu tailnet'e açmak için:

sudo tailscale serve --bg 8081
tailscale serve status

Bu kurulumla dosyalara tailnet içinden erişebiliyoruz. Drive'daki gibi herkese açık bir paylaşım linki veya ortak doküman düzenleme sağlamıyor.

Bir şey çalışmazsa

  • Dosya aktarımı yavaşsa tailscale ping nas ile bağlantının doğrudan (direct) mı yoksa DERP üzerinden mi kurulduğuna bakın. Ağın durumunu incelemek için tailscale netcheck de kullanılabilir.
  • Taildrop listesinde cihaz görünmüyorsa önce Send Files ayarını kontrol edin. İki cihazda da aynı kullanıcıyla oturum açılmış ve Tailscale çalışıyor olmalı; cihazlar tag'li olmamalı.
  • Taildrive'da klasör görünmüyorsa nodeAttrs ayarlarına ve grant içindeki paylaşım adına bakın. tailscale version ile istemci sürümünü de kontrol edin; en az 1.64.0 gerekiyor.