← 返回文章
網路與自架一般人可讀

玩轉 Tailscale:私人 VPN-遠端桌面、媒體播放與回家上網

我怎麼玩 Tailscale VPN?用 Sunshine+Moonlight 連家中電腦?foobar2000 串流整個 SMB 音樂庫?SenPlayer 看影片?再用雙 Exit Node、Subnet Router 和 Taildrop 延伸玩法?附安裝與設定指令。

Reading18 分鐘
Category網路與自架
Published2026年10月23日
Access一般人可讀
Tailscale 官方 App 圖示

出門帶著手機和平板,家裡的電腦也能一起用

家裡有一台 24/7 開著的電腦,音樂和影片也都存在裡面,出門之後,我還是希望能繼續使用這些東西。想操作電腦,就用 Sunshine+Moonlight 把畫面串流過來;想聽音樂,就讓 foobar2000 直接讀電腦裡的音樂資料夾;想看影片,再開 SenPlayer 連 SMB。

我就是把 Tailscale 當成連回家裡的 VPN,接著把平常會用的工具一個個接上去。 那些要填遠端電腦 IP 的功能,只要服務支援這種連線方式,我都會試著透過它來用。後來連路由器管理頁和 USB 硬碟也接進來,再把 Windows 設成自己的上網出口;就連舊電腦都能裝 Ubuntu Server 提供在海外的家人使用,變成一個免費的台灣 VPN 出口。

同一套 VPN,慢慢變成我遠端操作電腦、聽音樂、看片、拿檔案和使用家中網路的入口。

這篇就把這些用法一起分享,也把設定步驟和指令一起寫上。各位可以先挑自己有興趣的一種來玩玩看,之後有新的需求,再把其他功能也加進去。

一條 VPN,我拿來用這些

用法我怎麼用需要的功能
遠端操作電腦、串流桌面Sunshine+Moonlight 連家中主機兩端 Tailscale 連線
把整個音樂庫帶出門foobar2000 讀 SMB 主音樂資料夾,再整理播放清單Tailscale 連線+SMB 分享
看影片、瀏覽硬碟與拿檔案SenPlayer、檔案管理器直接連主機 IP兩端 Tailscale+對應服務
使用家裡的 IP 上網選房間 Windows,或讓家人使用客廳 Ubuntu 出口Exit Node
連路由器與 USB 硬碟經 Windows 轉送到 ASUS 路由器Subnet Router
臨時送一份檔案到其他裝置指定自己的接收裝置,把檔案傳過去保存Taildrop

開始之前:先把兩端的 VPN 連起來

Tailscale 是以 WireGuard 為基礎的 Mesh VPN,會把加入同一個私人網路的裝置連起來。這個網路叫做 Tailnet,每台裝置都有自己的 Tailscale IP,常見的 IPv4 形式是 100.x.x.x。Tailscale 運作原理

前面幾種玩法的共同起點,就是讓外出裝置能用這個 IP 連到家中電腦。想把一般上網流量也交給家裡(如果需要家中的 WAN IP),才另外選 Exit Node;要連沒有安裝 Tailscale 的路由器,則用 Subnet Router 轉送。兩種轉送功能的差別

第一步:兩端安裝 Tailscale,加入同一個 Tailnet

先準備家中要被連線的電腦,以及人在外面使用的手機、平板或筆電。家中主機需要保持開機、連網,欲使用的 Sunshine 或檔案分享等服務也要正在運作。

以下假設是自己的裝置,使用同一個 Tailscale 帳號登入。家人或其他人的裝置,則另外安排帳號與存取權限。

Windows、macOS、iOS、iPadOS、tvOS 與 Android 等平台

從 Tailscale 官方下載頁或各平台的官方商店安裝,開啟 App 後登入帳號並啟用連線。Windows 可從右下角系統匣的 Tailscale 圖示登入;手機和平板也要允許 App 建立 VPN 連線。

登入後,到 Machines 管理頁確認兩台裝置都有出現。依本文的做法,兩台裝置應加入同一個 Tailnet,且存取規則允許互連。 自己的裝置可以用同一帳號登入,其他使用者也能受邀加入 Tailnet;如果啟用了裝置核准,就先完成核准。使用者與裝置分享說明。Windows 的安裝介面可參考官方 Windows 教學。

Ubuntu Server

以下是在 Ubuntu 終端機執行的安裝與首次登入指令。已經安裝並登入的主機可以略過:

# 使用 Tailscale 官方安裝腳本
curl -fsSL https://tailscale.com/install.sh | sh

# 啟動服務,並設定開機啟動
sudo systemctl enable --now tailscaled

# 首次登入,依終端機顯示的網址完成授權
sudo tailscale up

想使用套件庫逐步安裝,也可以依照 Linux 官方安裝方式操作。

第二步:查家中電腦的 IP,從外面測試連線

在家中要被連線的電腦執行以下指令。Windows 開啟 PowerShell;Ubuntu 使用終端機:

tailscale ip -4
tailscale status

tailscale ip -4 查到的是這台電腦的 Tailscale IPv4。以下用 100.101.102.103 當作教學示例,請全部換成自己查到的主機 IP。

接著,在外面的 Windows、Mac 或 Linux 用戶端開啟 Tailscale,於有安裝 CLI 的環境測試:

tailscale ping 100.101.102.103

手機和平板則可直接從 Tailscale 的裝置列表找到家中主機,查看 IP,並使用 App 提供的連線測試功能。

最好讓手機改走行動網路,或讓筆電連手機熱點,確認測的是從外部連回家的路徑。看到節點連通之後,再開 Moonlight 或播放器測試實際服務。

這裡要分清楚三種位址:

位址意義什麼時候用
100.x.x.x電腦的 Tailscale IP透過 Tailscale 直接連這台電腦
192.168.x.x家中 LAN IP家中區網連線,或另設 Subnet Router 後使用
公網 IP家中路由器對外的位址驗證 Exit Node 出口等情境

若已啟用 MagicDNS,支援主機名稱的軟體也能填真正的裝置名稱。剛開始操作時,先用查到的 Tailscale IP 比較容易確認。

不想另外記 Tailscale IP?也可以沿用家中的內網 IP

我現在連 PC 和路由器硬碟,就是直接用家裡原本的內網 IP。PC 已固定為 192.168.50.2,ASUS 路由器則是 192.168.50.1,讓家中的 Windows 擔任 Subnet Router,公告這兩個位址後,在家或出門都能沿用同一組連線設定,不必另外記一組 Tailscale IP。

Windows 的轉送設定可照下面「玩法五」操作。接著在家中這台 Windows 的系統管理員 PowerShell公告兩個目的位址;已經設定好就不用重跑,其他人的網路請換成自己的實際 IP:

tailscale set --advertise-routes=192.168.50.1/32,192.168.50.2/32

這裡的 /32 各代表一個 IPv4 位址,分別是路由器與 PC。這個指令會重新指定整份公告路由清單,原本若還有其他路由,要一併保留在逗號分隔的清單裡。

再到 Machines 管理頁找到這台 Windows,在 Subnets/Edit subnet routes 核准這兩條路由。外出的用戶端也要接受路由;Windows、macOS、iOS 和 Android 通常會自動接受,Linux 則執行:

sudo tailscale set --accept-routes

轉送、路由核准、ACL/grants 和服務權限都允許後,播放器或檔案管理器就能使用原本的內網路徑。以下以我的設備為例,分享名稱請換成自己設定的名稱:

PC 硬碟:smb://192.168.50.2/你的分享名稱
路由器 USB 硬碟:smb://192.168.50.1/你的分享名稱

從外部 Windows 用戶端檢查兩個 SMB 入口,可以執行:

Test-NetConnection -ComputerName 192.168.50.2 -Port 445
Test-NetConnection -ComputerName 192.168.50.1 -Port 445

這種用法同樣不需要選 Exit Node,設備的內網 IP 要維持固定,才能一直沿用同一條路由。下文 Moonlight、SMB 等服務的 100.x 範例是一般直接連節點的寫法;像我已設定這兩條內網路由,連這些服務就能改用 PC 的 .2 或路由器的 .1。Subnet Router 設定

玩法一:Sunshine+Moonlight,把家中電腦的畫面串流過來

電腦留在家裡運作,外面的裝置負責顯示畫面和傳回操作,這就是 Sunshine+Moonlight 的用法。透過 Tailscale 連到主機 IP 後,可以選擇串流桌面,或開啟已設定好的遊戲與應用程式。

外出裝置的 Moonlight
        ↓ Tailscale VPN
家中電腦的 Sunshine
        ↓
桌面/遊戲畫面、聲音與操作

設定順序如下:

  1. 在家中主機安裝並設定 Sunshine,先確認它正在執行,並加入要使用的桌面或應用程式。
  2. 在用戶端安裝 Moonlight。建議人在家時先完成一次配對與試播,確認主機、顯示器及輸入裝置能正常使用。
  3. 兩端都啟用 Tailscale,確認能連到家中主機。
  4. 在 Moonlight 使用新增電腦/手動加入主機,輸入家中電腦的 Tailscale IP,例如 100.101.102.103。
  5. 若 Moonlight 要求配對,在家中電腦的 Sunshine 管理介面進入 PIN 頁,輸入 Moonlight 顯示的配對碼,再回用戶端選擇桌面或遊戲。
  6. 切換到行動網路或其他外部網路,再用這個 Tailscale 位址測試串流。

Moonlight 的官方設定指南也有介紹這個用法。沒有自動出現在裝置清單裡時,可以手動填 IP;若要沿用家中 LAN IP,先完成第二步末尾的內網路由設定,再填 PC 的 192.168.50.2。

這條路不需要選 Exit Node,也不用為了 Tailscale 連線另做 Sunshine 應用埠的公網轉發。主機上的 Sunshine 防火牆規則、配對與 Tailscale 存取權限仍要允許連線。

串流特別重視延遲和穩定性。開始前可以用 tailscale ping 看路徑是否建立 direct 直連;如果走中繼、行動訊號不穩,或可用頻寬不足,就要降低解析度與碼率,再觀察畫面表現。

以我的使用經驗,即使家裡是中華電信 1Gbps,在家中區網直接串流、沒有經過 Tailscale 時,4K HDR、20Mbps 也不一定能讓畫面和聲音都順暢,尤其在 iPadOS 上更明顯。我懷疑也與 App 相容性有關,實際仍要依裝置和串流設定測試。

玩法二:foobar2000,把電腦裡的整個音樂庫帶出門

音樂的部分,我喜歡直接讓 foobar2000 連電腦裡的資料夾。主音樂資料夾底下可以繼續照原本的方式放專輯,這樣就不用在每個裝置上都花很大的空間存這些肥厚的 FLAC 檔。以下先以 Tailscale IP 示範 SMB 網址,我實際使用的內網 IP 與點選步驟會在下方說明:

smb://100.101.102.103/Music

我會直接加入一個主音樂資料夾,讓底下的音樂被辨識出來,之後再依自己的習慣加進 Playlist(播放清單)。音樂本體仍放在電腦上,播放時透過 VPN 讀取,不需要先全部複製到手機或平板。

這裡的 Music 是 SMB 分享名稱。假設電腦實際資料夾是 D:\Music,共享名稱設定為 Music,遠端填的就是上面的網址,而不是 smb://IP/D:\Music。子資料夾則接在分享名稱後面,例如:

smb://100.101.102.103/Music/Artist/Album

先在主機準備 SMB 音樂分享(Windows 範例)

來源可以是 Windows、macOS、Linux 電腦,或提供 SMB 分享的 NAS/路由器。先在來源主機啟用 SMB、設定分享資料夾及讀取權限,記下分享名稱與可登入的帳密。我的音樂放在 Windows PC,下面以 Windows 的共用介面與 PowerShell 示範;其他主機則使用各自的 SMB 分享設定。

如果原本就有能使用的 SMB 分享,可以沿用,直接看下一小節。新設定時,可以在資料夾「內容 → 共用 → 進階共用」啟用共用,設定分享名稱並授予自己的帳號讀取權限。實際操作流程也可以觀看我先前的影片章節五(已定位)。

也可以在家中 Windows 的系統管理員 PowerShell建立分享。以下假設 D:\Music 已存在,使用執行指令的 Windows 帳號讀取:

# 查目前帳號與既有分享
whoami
Get-SmbShare

# 僅在尚未建立 Music 分享時執行;路徑換成自己的音樂主資料夾
$musicReader = whoami
New-SmbShare -Name "Music" -Path "D:\Music" -ReadAccess $musicReader

# 確認 Music 對應的實際路徑
Get-SmbShare -Name "Music" | Select-Object Name, Path

Windows 範例中,資料夾的 NTFS 權限也要允許這個帳號讀取。若來源主機是 Windows,連線時使用有權限的 Windows 帳號與密碼;Windows Hello PIN 不等於 SMB 登入密碼。Windows SMB 分享指令

若 VPN 已連通、SMB 卻被 Windows 防火牆擋住,可以新增限定自己用戶端的規則。下面的 100.101.102.104 是外出裝置 IP 的示例,請換成那台裝置在 Tailscale 顯示的位址;已有合適規則時不用重建:

New-NetFirewallRule -DisplayName "SMB from my Tailscale device" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 445 -RemoteAddress 100.101.102.104 -Profile Any

這條規則允許指定來源連到 SMB;其他既有規則仍各自作用,完整存取範圍要一起查看。Windows 防火牆規則指令

在 foobar2000 加入來源與播放清單

以下用我實際使用的 iPhone 介面示範。操作路徑是:主畫面 Browse → 右上角設定齒輪 → Media Library → + network location → 右上角三點按鈕 → 填寫 Network Location。

  1. 先在手機開啟 Tailscale,確認能連回提供音樂的主機,音樂資料夾也已經開好 SMB 分享。

  2. 打開 foobar2000 的 Browse 主畫面,點右上角的設定齒輪。

    foobar2000 Browse 主畫面,右上角是設定齒輪,下方可見已加入的 SMB 音樂資料夾

  3. 進入 Tools 頁面後,點 Media Library。

    foobar2000 Tools 設定頁,選擇 Media Library

  4. 在 Library Configuration 的 Music Folders 區塊,點 「+ network location」。

    foobar2000 Library Configuration 頁,Music Folders 下方有加 network location 按鈕

  5. 接著會進入 Network Folders。點右上角的三點按鈕(…),開啟可以手動填主機位置的 Network Location 頁面。

    foobar2000 Network Folders 頁,右上角有三點按鈕,可手動輸入網路位置

  6. Address 填完整的 SMB 網址,我用的是 smb://192.168.50.2/music;User 填提供 SMB 分享的主機上、有權限讀取該資料夾的帳號,Password 填該帳號對應的 SMB 登入密碼。主機可以是電腦、NAS 或路由器,帳密依來源主機的分享設定填寫。

    foobar2000 Network Location 表單,包含 Address、User、Password,以及 Add 和 Test 按鈕

  7. 填好後可以先按 Test 測試,確認連線成功再按 Add 加入。回到 Library Configuration,確認這個 SMB 來源的開關已開啟,讓 foobar2000 掃描音樂主資料夾及其下的曲目。曲目多時需要一些時間,畫面下方的 Status: indexing... 表示還在掃描。

  8. 回到 Browse 主畫面,就能從剛加入的 smb://192.168.50.2/music 資料夾瀏覽音樂,再挑選專輯、歌曲或資料夾加入自己的 Playlists(播放清單)。我會直接加一個主音樂資料夾,之後再另外整理播放清單。

這裡沿用的是我的內網 IP,外出時要先完成第二步末尾的 Subnet Router 設定;若直接用電腦的 Tailscale IP,就把 Address 換成像 smb://100.101.102.103/Music 這樣的網址。music/Music 都要換成自己實際的 SMB 分享名稱。

以上以我使用的 iPhone 介面示範,其他平台的選單可能不同。VPN 這一層的重點相同:來源主機填可經 Tailscale 抵達的 IP,SMB 路徑和帳密則沿用檔案分享的設定。

玩法三:SMB,硬碟裡的影片和檔案照樣用

音樂庫接上之後,影片和一般檔案也是一樣。主機提供的 SMB 分享可以讓不同 App 讀取:想看影片就開播放器,想找檔案就開檔案管理器,繼續使用自己熟悉的工具。

相同方式也可以用在影片播放器、檔案管理器,以及其他能指定遠端主機的服務。連線時保留原本的協定、分享名稱和埠號,主機位址可用對方的 Tailscale IP,或已公告並核准的內網 IP;服務本身仍需要支援該種連線並允許存取。

使用情境要填的內容(教學示例)
Moonlight 新增主機100.101.102.103
foobar2000 的 SMB 音樂來源smb://100.101.102.103/Music
Windows 檔案總管\\100.101.102.103\Music
Mac Finder、iPhone/iPad「檔案」App 的「連接伺服器」smb://100.101.102.103/Music
SenPlayer 的 SMB 主機欄位主機 100.101.102.103,SMB 埠 445,另填分享/路徑與帳密
已部署的 Jellyfin 服務http://100.101.102.103:8096(使用預設 HTTP 埠時)

我的影片來源包含 Windows PC 和 ASUS 路由器 USB 硬碟,播放器的實際介面與使用經驗可以看 SenPlayer 使用心得。我自己連 Windows 和路由器 USB 分享,分別沿用 192.168.50.2 與 192.168.50.1,就是第二步末尾的雙路由做法;完整轉送設定在後面的 Subnet Router 章節。

如果從另一台 Windows 測試 SMB,可以執行:

Test-NetConnection -ComputerName 100.101.102.103 -Port 445

TcpTestSucceeded: True 代表當次 TCP 445 可抵達,接著才是檢查分享名稱、帳密與讀取權限。tailscale ping 通,只能確認節點連線,不能取代每個服務的測試。

玩法四:Exit Node,出門也能借家裡的 IP 上網

前面的功能,是讓用戶端透過 VPN 連到家中服務。想讓一般網際網路流量也從家裡出去,就可以選用 Exit Node。

這個功能也讓我把客廳的舊電腦重新派上用場。房間的主力 Windows 給自己使用,客廳則裝 Ubuntu Server,提供海外家人一個台灣出口。兩台各有任務,不必把所有用途都放在同一台主機上:

主機網路環境使用需求
房間 WindowsASUS ROG GS-BE18000,HiNet 對稱 1Gbps自己外出時使用家中出口,也兼任遠端服務主機
客廳 Ubuntu Server 舊電腦TOTOLINK AC5 撥號,浮動公網 IPv4,舊鏈路約 100Mbps提供海外家人一個台灣出口

Windows 主機:公告出口並核准

在要提供出口的 Windows,以系統管理員 PowerShell 執行:

tailscale set --advertise-exit-node

也可以從 Windows Tailscale 系統匣選單的 Exit node → Run exit node 啟用。接著到 Machines,找到這台主機,開啟 Edit exit node,勾選 Use as exit node 並儲存。Windows 出口設定

Ubuntu 主機:啟用轉送,再公告出口

Ubuntu 已經安裝並登入 Tailscale 後,先查看轉送狀態:

sysctl net.ipv4.ip_forward
sysctl net.ipv6.conf.all.forwarding

新設定出口時,依官方方式把 IPv4/IPv6 轉送寫入設定並載入;若檔案已經有相同設定,不需要重複加入:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

sudo tailscale set --advertise-exit-node

再到 Machines 核准這台 Ubuntu 的 Exit Node。這是提供出口的設定流程;Linux 系統的防火牆也要允許所需的轉送。Linux 出口設定

外出用戶端:選出口、確認、取消

在要使用出口的裝置開啟 Tailscale → Exit Node,選擇已核准的家中出口主機;我這裡是 Windows 或 Ubuntu。若用戶端是 Windows,也可以在 PowerShell 指定提供出口的主機:

# 在外出的用戶端執行,IP 換成提供出口的那台主機
tailscale set --exit-node=100.101.102.103

Linux 用戶端則在相同指令前加 sudo。選完後,在這台用戶端查詢公網 IP,比較是否已變成家中出口的公網位址。

不需要經過家裡上網時,在用戶端選 None,或執行:

tailscale set --exit-node=

這只取消用戶端選用的出口,Tailscale 裝置間的 VPN 連線仍保留。若要讓提供出口的主機停止公告,則是在那台主機執行 tailscale set --advertise-exit-node=false;Ubuntu 要加 sudo。

若 Tailnet 使用自訂 ACL/grants,還要確認使用者有 autogroup:internet 的出口使用權限。Allow LAN access 處理的是用戶端所在地的本機區網存取,家中主內網與私人檔案的授權則要另外管理。出口權限與本機區網說明

玩法五:Subnet Router,把路由器和 USB 硬碟也接進來

電腦能連了之後,我還想把路由器接的 USB 硬碟一起用。ASUS 路由器的管理頁和儲存分享原本就在家中 LAN,於是我讓 Windows 多兼一個 Subnet Router 的工作,替它們轉送。

這樣就能把沒有直接安裝 Tailscale 的設備也納入玩法。外出時用熟悉的路由器 IP 連進去,Windows 在中間負責把路接起來。

我的 ASUS 路由器是 192.168.50.1,Windows 是 192.168.50.2。我現在把兩個位址各自以 /32 公告,讓 PC 與路由器硬碟都能沿用家中 IP 連線,第二步末尾也有這組指令。

外出裝置
   ↓ Tailscale VPN
家中 Windows(Subnet Router)
   ↓ 家中 LAN
ASUS 192.168.50.1 → 管理頁/USB 硬碟

1. 在家中 Windows 確認並啟用轉送

以下在擔任 Subnet Router 的 Windows 以系統管理員 PowerShell 執行。先列出介面,找出 Tailscale 與連到家中路由器的實體網路介面:

Get-NetIPInterface -AddressFamily IPv4 |
    Format-Table InterfaceIndex, InterfaceAlias, Forwarding -Auto

若尚未啟用,對這兩個介面設定 IPv4 forwarding。下面的 Tailscale 與 Ethernet 都要依上一步的實際名稱調整,例如中文版 Windows 的實體介面可能叫「乙太網路」:

Set-NetIPInterface -InterfaceAlias "Tailscale" -AddressFamily IPv4 -Forwarding Enabled
Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv4 -Forwarding Enabled

設定後重新查詢,確認這兩個介面的 Forwarding 是 Enabled。指令只選定這兩個介面,詳細參數見 Microsoft 轉送設定文件。

2. 公告目的地,再到管理端核准

以下和第二步末尾相同,同時公告我的路由器與 PC 位址;請換成自己的目標內網位址:

tailscale set --advertise-routes=192.168.50.1/32,192.168.50.2/32

--advertise-routes 會重新指定整份公告清單。 如果原本已有其他路由,要先到 Machines 查看現有清單,將要保留的路由一起用逗號列出,避免被這個範例取代。

然後到 Machines 找這台 Windows,在 Subnets/Edit subnet routes 核准這兩條路由,並確認 ACL/grants 允許目的位址與所需服務。Windows Subnet Router 設定

3. 從外出裝置連線並驗證

Windows、Mac、iOS 和 Android 的 Tailscale 用戶端通常會自動接受路由;Linux 用戶端若要使用這些路由,執行:

sudo tailscale set --accept-routes

接著使用路由器原本的管理入口,或在檔案管理器填入它的 SMB 分享:

http://192.168.50.1
smb://192.168.50.1/實際分享名稱

管理頁若設定為 HTTPS 或其他埠,就沿用原本入口。從外部 Windows 檢查路由器 SMB 則可以用:

Test-NetConnection -ComputerName 192.168.50.1 -Port 445

路由核准、存取權限、Windows 轉送,以及路由器服務都要正常。若人在另一個也使用相同 LAN 位址的網路,還要檢查實際路由是否指向自己家。路由與存取控制的分工

若要停止公告所有 subnet routes,在提供路由的 Windows 執行 tailscale set --advertise-routes=;只移除其中一條時,則重新列出要保留的完整清單。

加碼用法:Taildrop,臨時把檔案送到自己的另一台裝置

Taildrop 適合「我要把這份檔案存到另一台裝置」的情境。它不需要先建立 SMB 分享。

和前面的用途放在一起看,就很容易選:

想做的事使用方式
foobar2000 直接讀家中音樂、SenPlayer 讀影片用 VPN 連 SMB,來源電腦需要在線
把檔案複製一份到平板,之後離線使用用 Taildrop 傳送,完成後在接收端開啟

1. 準備傳送與接收裝置

兩台都要啟用 Tailscale,並屬於自己同一個帳號的個人裝置;Taildrop 不提供跨使用者或帶標籤節點的傳檔。依目前官方文件,它仍是 alpha 功能,第一次使用要到管理端 Settings → General 啟用 Send Files。Taildrop 設定與適用範圍

2. 在 Windows 列出接收目標,傳送單一檔案

開啟 PowerShell,先查哪些自己的裝置可接收:

tailscale file cp --targets

從輸出裡選接收裝置。以下用我平板的名稱 tab-s8-ultra 示範,檔案路徑和裝置名稱都要換成自己的:

tailscale file cp "E:\Music\example.flac" tab-s8-ultra:

這才是實際傳送的指令。目標名稱後方的冒號要保留。 不想用指令,也可以在 Windows 對檔案按右鍵,使用 Send with Tailscale 選擇接收裝置。

3. 整個資料夾先打包,再傳 ZIP

這裡接續 Windows PowerShell 範例。其他平台也可以先用自己慣用的壓縮工具建立 ZIP,再交給 Tailscale 傳送。

如果 CLI 對目錄顯示 directories not supported,可以先打包。以下示範把 E:\Music\Album 壓成 ZIP,再送到平板;這是操作範例,請換成自己的實際路徑:

Compress-Archive -LiteralPath "E:\Music\Album" -DestinationPath "E:\Music\Album.zip"
tailscale file cp "E:\Music\Album.zip" tab-s8-ultra:

-LiteralPath 可以避免資料夾名稱中的中括號被當作萬用字元處理。Compress-Archive 有單檔大小等限制,大型檔案或需要保留隱藏檔時,可改用合適的壓縮工具建立 ZIP,再傳送該 ZIP。PowerShell 壓縮指令說明

4. 到接收裝置取檔

Android/Samsung 平板會顯示接收通知,點開後可在檔案 App 的 Downloads(下載)找到檔案。若傳的是 ZIP,解壓縮後再交給播放器或其他 App 使用。Windows 新版接收檔案則放在使用者的 Downloads 資料夾。Android 接收方式、Windows 接收方式

Linux 接收端可以先建立接收資料夾,再以 sudo 取出由 Tailscale 服務接收的檔案:

mkdir -p ~/Downloads/taildrop
sudo tailscale file get ~/Downloads/taildrop

file cp 負責送出、file get 負責在接收端取出檔案,手機和平板則使用各自 App 的接收流程。CLI 傳檔指令、Linux 接收方式

速度實測:5G、ASUS WireGuard 與 Tailscale 出口

2026 年 4 月 29 日,我比較過直接使用 5G、ASUS WireGuard FULL 全通道,以及 Tailscale Exit Node:

當次測試路徑下載(Mbps)上傳(Mbps)
直接使用 5G466.5711.49
ASUS WireGuard FULL68.439.73
Tailscale Exit Node168.9612.80

那次 Tailscale 出口的下載約為 ASUS WireGuard FULL 的 2.47 倍。這是在比較「經過家裡上網」的表現,Moonlight 或 SMB 直接連主機時,還需要看實際端到端路徑與服務狀態。

同一天,我還讓 MacBook 透過 iPhone USB 個人熱點走 5G,測試真正從外部連回家的效果,曾建立約 29ms 的 direct 連線;家中 LAN 的測試則曾看到約 2ms。數據反映當天的設備、線路與負載,並非每次連線的速度保證。

連不上或串流卡頓時,我會先看這些

direct、DERP 和服務狀態

direct 是兩端直接用 UDP 傳送加密封包,通常有較好的延遲與吞吐;無法直連時可以經過 DERP 等中繼,WireGuard 端到端加密仍然存在。連線剛建立時也可能先中繼、再轉成直連。Tailscale 連線類型

tailscale version
tailscale status
tailscale ping 100.101.102.103
tailscale netcheck

先看節點是否在線、走哪條路,再測實際服務。Moonlight 需要 Sunshine 運作及配對完成;SMB 需要分享、帳密與防火牆允許。用名稱不通時,也可以先以已核對的 Tailscale IP 測試,分開判斷 DNS 和服務問題。

Ubuntu 若整台離線,先查它自己有沒有網路,再看服務:

ip -br addr
ip route
sudo systemctl status tailscaled
sudo journalctl -u tailscaled -b --no-pager

多套 VPN 與多張網路介面

我在 Windows 同時使用 NordVPN 和 Tailscale 時,曾碰過無法連到 Tailscale 主機;改 DNS、Split Tunneling 都沒解決那次問題,後來取消了 NordVPN。研究 Surfshark 時,也討論過把商業 VPN 放到 ASUS VPN Fusion 的配置方向。

另一次 Windows 同時連著 Ethernet 和 Wi-Fi,出現 Discord 文字能送、圖片卻失敗的情況,關掉 Wi-Fi 後恢復。這類問題要看當下的路由、DNS 與介面,不能只看裝了哪套 VPN。

Windows 可以先查:

Get-NetIPInterface -AddressFamily IPv4 |
    Format-Table InterfaceAlias, InterfaceMetric, Forwarding -Auto
Get-NetRoute -AddressFamily IPv4 |
    Format-Table DestinationPrefix, InterfaceAlias, NextHop, RouteMetric -Auto
ipconfig /all

結尾:一條 VPN,隨時連回家中的服務

對我來說,用 Tailscale 的樂趣就在這裡:先讓一台裝置連回家,接著就會開始想,還有哪些平常在家用的東西,也能透過這條 VPN 繼續用?

Moonlight 連回電腦,foobar2000 把整個音樂主資料夾接進來,SenPlayer 讀硬碟裡的影片;再往下玩,連路由器 USB 硬碟、家中的上網出口和客廳舊電腦,都能各自找到用途。

每多接上一個自己會用的服務,這套私人網路就多一點價值,到現在真的覺得用 Tailscale 後真的很方便。可以從自己最常用的那個 App 開始,填上遠端電腦的 Tailscale IP,或設定好路由後沿用內網 IP,看看平常的使用習慣能延伸到多遠。

COMMUNITY

聊聊你的想法

目前僅限登入 Discord 的伺服器成員可以留言,顯示名稱會使用你在伺服器裡的名字。

正在載入留言……