1 คะแนน โดย GN⁺ 1 일 전 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

Repository: https://github.com/localsend/localsend

  • เป็น แอปโอเพนซอร์สฟรี ที่ให้คุณส่งไฟล์และข้อความกับอุปกรณ์ใกล้เคียงภายใน เครือข่ายโลคัล ได้อย่างปลอดภัยโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
  • ไม่พึ่งพาเซิร์ฟเวอร์ภายนอกหรือเซิร์ฟเวอร์ของบุคคลที่สาม โดยจัดการการสื่อสารระหว่างอุปกรณ์ผ่าน REST API และ การเข้ารหัส HTTPS เพื่อรองรับการสื่อสารภายในเครือข่ายที่รวดเร็วและเชื่อถือได้
  • ข้อมูลที่ถ่ายโอนทั้งหมดได้รับการปกป้องด้วย HTTPS และสร้าง ใบรับรอง TLS/SSL บนแต่ละอุปกรณ์ได้ทันทีเพื่อเพิ่มความปลอดภัย
  • มีให้ใช้งานบน Windows, macOS, Linux, Android, iOS และ Fire OS โดยแนะนำให้ติดตั้งผ่านแอปสโตร์หรือแพ็กเกจเมเนเจอร์เป็นหลัก
  • แอปไม่มี ฟังก์ชันอัปเดตอัตโนมัติ ดังนั้น README จึงแนะนำให้ใช้เส้นทางผ่านแอปสโตร์หรือแพ็กเกจเมเนเจอร์
  • ช่องทางแจกจ่ายประกอบด้วย Winget, Scoop, Chocolatey, EXE, Portable ZIP บน Windows, App Store และ Homebrew บน macOS, Flathub, Nixpkgs, Snap, AUR, DEB, AppImage, TAR บน Linux, Play Store, F-Droid, APK บน Android และ Amazon บน Fire OS
  • เวอร์ชันที่รองรับขั้นต่ำคือ Android 5.0, iOS 12.0, macOS 11 Big Sur และ Windows 10 โดยเวอร์ชันสุดท้ายที่รองรับ Windows 7 คือ v1.15.4
  • บน Linux อาจต้องมี dependency ตระกูล xdg-desktop-portal ตามเดสก์ท็อปเอนไวรอนเมนต์ โดย Gnome ต้องใช้ xdg-desktop-portal และ xdg-desktop-portal-gtk ส่วน KDE ต้องใช้ xdg-desktop-portal และ xdg-desktop-portal-kde
  • โดยส่วนใหญ่ใช้งานได้โดยไม่ต้องตั้งค่าเพิ่มเติม แต่หากมีปัญหาในการส่งหรือรับ ควรอนุญาตอินบาวนด์ TCP/UDP 53317 ในไฟร์วอลล์ และอนุญาตเอาต์บาวนด์ TCP/UDP ด้วย
  • หากเปิด AP isolation ไว้ที่เราเตอร์ จะทำให้อุปกรณ์เชื่อมต่อกันไม่ได้ ดังนั้นหากมีปัญหาในการค้นหาอุปกรณ์ควรปิดฟังก์ชันนี้
  • โหมดพกพาจะเปิดใช้งานได้เมื่อวางไฟล์ settings.json ไว้ในไดเรกทอรีเดียวกับไฟล์รันโปรแกรม แม้จะเป็นไฟล์ว่างก็ได้ และจะเปลี่ยนตำแหน่งบันทึกการตั้งค่าจากพาธปกติมาเป็นไฟล์นั้นแทน
  • หากต้องการเริ่มโปรแกรมแบบซ่อนไว้เฉพาะใน tray สามารถใช้แฟลก --hidden ได้
  • หากความเร็วช้า มีคำแนะนำให้ใช้ 5 Ghz และปิดการเข้ารหัสบนอุปกรณ์ทั้งสองฝั่ง โดยปัญหาความเร็วรับข้อมูลที่ลดลงบน Android ยังเป็น known issue
  • การ build จากซอร์สต้องใช้ Flutter และ Rust และเนื่องจากโปรเจกต์ใช้ Flutter เวอร์ชันเก่าที่ระบุไว้ใน .fvmrc จึงแนะนำให้ใช้ fvm flutter

2 ความคิดเห็น

 
xguru 1 일 전

ผมเคยใช้บ่อยเพื่อแชร์ไทม์แลปส์ที่ถ่ายตอนนัดเล่นบอร์ดเกมกันครับ
ช่วงหลัง Galaxy กับ Pixel ก็แชร์แบบ AirDrop กันได้แล้ว เลยทำให้การใช้งานดูคลุมเครือนิดหน่อยครับ
แต่ถ้าจะส่งเข้าเดสก์ท็อปก็ยังดีอยู่เหมือนเดิมครับ

 
GN⁺ 1 일 전
ความเห็นจาก Hacker News
  • ปัญหาคือทางเลือกพวกนี้ทั้งหมดต้องอยู่ใน เครือข่ายโลคัลเดียวกัน
    เท่าที่เข้าใจ ข้อดีของ Airdrop คือมันสร้างและจัดการเครือข่ายโลคัลนั้นให้เองอยู่เบื้องหลัง
    เลยส่งอะไรให้กันได้ทันทีแม้ตอนเดินป่ากับเพื่อน
    หลังจากย้ายไป Android ก็ต้อง ปล่อยฮอตสปอต จากเครื่องเพื่อนเพื่อสร้าง LAN ก่อนแล้วค่อยใช้ Localsend ซึ่งประสบการณ์มันลื่นน้อยกว่ามาก

    • https://mbarlow.github.io/thinair/
      เป็นเครื่องมือ ส่งข้อมูลระหว่างอุปกรณ์ ที่ทำงานได้ด้วยหน้า GitHub แบบ static ล้วนๆ
      gh repo: https://github.com/mbarlow/thinair
      แต่ละอุปกรณ์จะสร้าง QR code ให้สแกน แล้วตั้งการเชื่อมต่อ WebRTC
      ระหว่าง Android ด้วยกันยังใชั เสียง chirp เพื่อบอกให้สลับจากโหมด QR ไปเป็นโหมดสแกนกล้องด้วย
      ลองทดสอบ Android↔Apple แล้ว ใช้งานได้จริง แต่ Apple จับเสียง chirp นั้นไม่ได้
      กรณีนั้นรอสักหน่อย QR code จะหายไปและข้ามไปขั้นตอนสแกนได้
      มันเป็นของที่ทำขึ้นแบบรีบๆ เดิมทีตั้งใจลองทำ audio handshake ระหว่างสมาร์ตโฟนด้วยเสียง chirp แบบนกร้องหรือแบบโมเด็มเก่าๆ
      การเอาโทรศัพท์มาแตะกันแล้วส่งเฟรมเสียงไปมาเพื่อยืนยันการเริ่มส่งนั้นสนุกดี แต่ handshake ช้าและเชื่อถือได้ไม่มาก
      อยากขัดเกลา flow ให้ดีกว่านี้ และตอนนี้ก็ใช้อยู่แล้วสำหรับส่งไฟล์ระหว่าง iPhone/Android/PC โดยไม่ต้องมีแอป อีเมล หรือบัญชี
    • สิ่งที่ใกล้เคียง P2P ข้ามแพลตฟอร์ม จริงๆ มากที่สุดคือ FlyingCarpet
      เพียงแต่มันไม่ได้เสถียรหรือใช้งานเป็นมิตรนัก
      https://github.com/spieglt/FlyingCarpet
    • อันนี้ก็น่าลอง: https://github.com/nuwainfo/ffl
      เป็น แอป Android และบอกว่าแชร์ได้โดยไม่ต้องมี LAN
      https://play.google.com/store/apps/details?id=com.fastfilelink.wrapper
    • Airdrop เองก็บางทีก็ ทำงานแปลกๆ
      บางครั้งหาอีกเครื่องไม่เจอ น่าจะเป็นตอนที่การส่งครั้งก่อนล้มเหลวเงียบๆ อยู่เบื้องหลัง
      ถ้าไม่มีสัญญาณมือถือ/Wi-Fi การค้นหารายชื่อก็มักมีปัญหา เคยเจอตอนพยายามส่งรูปให้โทรศัพท์อีกเครื่องบนภูเขา
      บางทีค้างไปเฉยๆ แล้วใช้ไม่ได้เลย แบบนี้ Apple magic ก็ไม่ได้ช่วยอะไรนัก
    • จริงๆ แล้ว Localsend ทำแค่ ขั้นตอนสุดท้าย ของสิ่งที่ Airdrop ทำ
      ถ้าจะใช้ Localsend ต้องให้เครื่องหนึ่งสร้าง ad-hoc Wi‑Fi ก่อน แล้วให้อีกเครื่องต่างๆ เชื่อมต่อเข้ามา จากนั้นถึงค่อยเปิด Localsend
      สองขั้นตอนแรกค่อนข้างยุ่งยาก และ Airdrop จัดการให้หมดเอง เลยให้ความรู้สึกฝืดน้อยกว่ามาก
  • เพิ่งเริ่มใช้ไม่นานนี้ แต่ ทำงานได้ดีมาก และไว้ใจได้กว่า Airdrop มาก
    แต่อีกด้านหนึ่ง UX ยังมีที่ให้ปรับปรุงได้
    ถึงอย่างนั้นก็อยากให้ Apple แก้ Airdrop อยู่ดี
    มันไว้ใจได้น้อยมากในทุกครั้งที่ใช้ ทั้งมองไม่เห็นอุปกรณ์ หรือถ้ามีผู้ใช้ Mac หลายคนก็แสดง Mac เครื่องเดิมซ้ำสองครั้งโดยไม่บอกว่าเป็นผู้ใช้คนไหน ทำให้งง

    • สงสัยว่าคนส่วนใหญ่ใช้สิ่งนี้ทำอะไรกัน
      นึกไม่ค่อยออกว่าต้องสร้างหรือย้าย ไฟล์ใหญ่ๆ แบบไหนถึงจำเป็นต้องมีแอปแบบนี้ขนาดนั้น
      สำหรับผม ไฟล์จากโทรศัพท์ก็มีแค่รูปกับวิดีโอ สำรองขึ้น Immich แล้วแชร์เป็นลิงก์ก็พอ
      คนทั่วไปก็น่าจะใช้ iCloud หรือ Google Photos คล้ายๆ กัน
      ส่วนไฟล์อื่นอย่างเอกสาร ผมซิงก์ด้วย ownCloud OCIS และสำหรับคนส่วนใหญ่ DropBox หรือ iCloud หรือแม้แต่อีเมลหรือ WhatsApp ก็น่าจะพอแล้ว
      ถ้าจะย้ายพวก ISO บนเครือข่ายโลคัล ก็แค่คัดลอกผ่าน SMB ได้เลย ใช้ได้แทบทุกที่และไม่ต้องมีแอปเพิ่ม
      ถ้าเป็นเรื่องแบ็กอัป ก็เสียบฮาร์ดไดรฟ์เข้าไปตรงๆ ได้เหมือนกัน
      เลยยังไม่ค่อยเข้าใจว่าทำไมต้องใช้สิ่งนี้
    • อยากรู้ว่าได้ลอง แก้ปัญหา พวกนั้นไปแล้วหรือยัง
      เมื่อก่อนผมก็มีปัญหาเรื่องมองไม่เห็นเหมือนกัน แต่ช่วงนี้มักใช้งานได้ตลอด
    • ของผมคือเห็นอุปกรณ์นะ แต่พอกดเริ่มส่ง ประมาณครึ่งหนึ่งฝั่งปลายทางจะไม่เด้งอะไรขึ้นมาเลย
      ยังหาวิธีแก้แบบชัวร์ๆ ไม่ได้ วิธีที่ดีที่สุดตอนนี้คือปิดแล้วเปิด Airdrop ใหม่ทั้งสองฝั่ง แต่ก็ได้ผลแค่ ประมาณ 70%
  • Sendme https://github.com/n0-computer/sendme กับ AltSendme https://github.com/tonyantony300/alt-sendme ก็น่าสนใจ
    ทั้งคู่ใช้ Iroh https://github.com/n0-computer/iroh ซึ่งเป็น บริการ relay P2P แบบเข้ารหัสโอเพนซอร์ส สำหรับส่งข้อมูลโดยไม่ต้องมีเซิร์ฟเวอร์กลาง ทำให้แทบไม่มีข้อจำกัดเรื่องขนาดไฟล์ของฝั่งส่งหรือรับ
    ในเธรดคล้ายๆ กันที่คุยเรื่องแอปแชร์ไฟล์ ผมก็เคยแนะนำตัวนี้เหมือนกัน
    https://news.ycombinator.com/item?id=47906587

    • บริการที่ต้องให้ แชร์ seed/code แบบนี้มักรู้สึกแปลกๆ เสมอ
      โค้ดไม่ได้สั้นหรือเรียบง่ายพอจะบอกกันด้วยปากได้ และถ้าส่งโค้ดนั้นได้ ปกติก็ส่งไฟล์จริงไปตรงๆ ได้อยู่แล้ว
  • https://github.com/schlagmichdoch/pairdrop
    เป็นโปรเจกต์คล้ายกัน แต่ตัวนี้ ทำงานทั้งหมดในเบราว์เซอร์ และใช้ห้อง "public" เพื่อเชื่อมต่อกับไคลเอนต์นอกเครือข่ายโลคัลได้ด้วย

    • อันนี้ต้องลองให้ได้
      ตอนนี้ติดตั้ง Localsend ไว้ส่งไฟล์ระหว่าง iPhone กับเดสก์ท็อป Linux แต่ไม่ได้ทำงานดีสม่ำเสมอ
      ต่อให้เปิดพอร์ต Localsend ใน Firewalld แล้ว บางทีก็ยังใช้เวลา เกิน 10 นาที กว่าอุปกรณ์จะมองเห็นกัน
      ถ้าเป็นแบบเบราว์เซอร์ อย่างน้อย discovery น่าจะเร็วกว่า
    • Pairdrop ดีมากจริงๆ
      เอกสารค่อนข้างซ่อนอยู่ แต่ FAQ คือ https://github.com/schlagmichdoch/pairdrop/blob/master/docs/faq.md และ
      วิธีผนวกเข้ากับเมนูแชร์ของ Android, iOS, Windows อยู่ที่ https://github.com/schlagmichdoch/PairDrop/blob/master/docs/how-to.md
      มันเป็นฟอร์กจาก sharedrop กับ snapdrop หลังสองตัวนั้นถูก LimeWire ซื้อไปแล้วพัง
    • ชื่อน่าจะเป็น PearDrop มากกว่า
  • รู้สึกว่าสิ่งที่อ้างตัวว่าเป็นตัวแทน Airdrop น่าจะต้องมีอะไรสักอย่างแบบ spamsolutions.txt
    ตัวนี้ไม่ผ่านเกณฑ์ที่ว่าอุปกรณ์ทั้งสองฝั่งไม่ควรต้องต่ออยู่กับ เครือข่าย Wi‑Fi ที่มีอยู่ก่อนแล้ว
    https://craphound.com/spamsolutions.txt

  • เคยทำอะไรแนวนี้ออกมาด้วย Tauri เหมือนกัน
    ขนาดไฟล์ติดตั้งประมาณ Mac 27MB, Linux .deb 45MB, Windows 53MB ส่วน Electron เริ่มต้นก็ราว 150MB
    มีแค่ .AppImage ที่เป็นข้อยกเว้น ขนาดประมาณ 110MB เพราะรวม runtime มาด้วย
    การลดขนาดนี้ได้มาจากการใช้ webview ของระบบปฏิบัติการซ้ำ แต่ในขณะเดียวกันนั่นก็เป็นต้นทุน
    WebKitGTK บน Linux ทำงานต่างจาก WebKit บน Mac หรือ Edge WebView บน Windows อย่างเห็นได้ชัด เลยไม่ได้อาศัย Chromium มาช่วยจัดการให้ และต้องเสียเวลาไปกับ การดีบักข้ามแพลตฟอร์ม
    ที่น่าแปลกยิ่งกว่าตัวเฟรมเวิร์กคือ การแพ็กเกจบน Linux
    AppImage รันได้ทุกที่ก็จริง แต่สำหรับผู้ใช้ส่วนใหญ่มักรู้สึกเหมือนเป็นพลเมืองชั้นสอง ส่วน .deb ครอบคลุมดิสโทรหลักๆ แต่ก็ต้องคอยตามเวอร์ชัน glibc ที่ขยับตลอด
    Snap/Flatpak ดูเหมือนคำตอบอย่างเป็นทางการสำหรับ cross-distro แต่ด้วย sandbox และการจัดการสิทธิ์ นักพัฒนาอินดี้ก็พร้อมเสียเวลาเป็นสัปดาห์ได้ง่ายๆ
    สุดท้ายพอปล่อย .deb กับ .AppImage ออกไป ไม่กี่ชั่วโมงก็เริ่มมีอีเมลถามว่า "ทำไมไม่มีบน AUR"

  • ใช้งานในเบราว์เซอร์ได้ด้วย
    https://web.localsend.org/
    ส่งไฟล์จาก Windows ไป Android, iOS ได้

    • ฝั่งผมใช้ไม่ได้
      ลองทั้ง Firefox, Chrome, โทรศัพท์, โน้ตบุ๊ก ทั้งส่งทั้งรับแล้ว
      ในคอนโซลขึ้นว่า WebRTC: ICE failed, add a TURN server and see about:webrtc for more details. และผมก็ไม่แน่ใจว่าผู้ใช้ทั่วไปจะแก้เรื่องนี้ยังไง
      พอค้นดูก็เจอแต่คำแนะนำสำหรับนักพัฒนาเป็นส่วนใหญ่
      สุดท้ายพบว่า ถ้าปิด Tailscale แล้วมันจะใช้ได้
    • สงสัยว่าในเบราว์เซอร์เขาทำ การค้นหาอุปกรณ์ใน LAN กันยังไง
    • ดีเลย
      แต่ v1.18.0 ยังไม่ขึ้น F-droid
  • ปีที่แล้วผมก็ทำอะไรในพื้นที่นี้อยู่เหมือนกัน
    โดยพื้นฐานแล้วผมสร้าง keibidrop ซึ่งเป็น ระบบไฟล์แบบ peer-to-peer: https://keibidrop.com/
    เปิดตัวไปเมื่อสัปดาห์ก่อน และนอกจากสิ่งที่ local send ทำแล้ว มันยังทำงานผ่าน WAN ได้ด้วย
    แอปมือถือยังไม่ออก
    ส่วนที่ไปไกลกว่าอีกขั้นคือมันมี virtual filesystem ที่ซิงก์สองทางได้ด้วย
    รีโปอยู่ที่นี่: https://github.com/KeibiSoft/KeibiDrop
    โค้ดยกเว้น UI เป็นโอเพนซอร์ส และลอง benchmark เทียบกับ localsend บน loopback แล้ว local send เร็วกว่า
    https://keibisoft.com/blog/keibidrop-benchmarks-vs-competition.html
    เมื่อวานยังพยายามไปตั้งเธรดคอมเมนต์ใน /r/golang ด้วย
    ภายในใช้ PQC, gRPC, FUSE

  • หลังย้ายมา Linux นี่เป็นหนึ่งในแอปแรกๆ ที่ผมติดตั้ง
    มันทำให้รู้สึกชัดเจนเลยว่า แอปโอเพนซอร์ส ดีแค่ไหน

  • ดูเหมือนว่าถ้าเปิด Tailscale อยู่ ตอนนี้ Localsend จะทำงานได้ไม่ค่อยเสถียร
    น่าเสียดายเหมือนกัน
    ถ้ารองรับการส่งไฟล์ระหว่างไคลเอนต์ใน tailnet เดียวกันได้ด้วยคงดีมาก