快轉到主要內容

將Tailscale當跨區VPN用:如何設定出口節點(Exit Node)

分類   Linux系統 Self-hosting自架
標籤   Tailscale
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

將所有Tailscale裝置的流量導向到特定裝置。

在我們連上Tailscale組成的虛擬區域網路之後,所有的裝置依然是使用自己的網路上網,只有在二個裝置(節點)需要通訊的時候才會走Tailscale網路。因此你會發現Tailscale並沒有更改裝置地理IP的效果,它不過是負責組虛擬內網的工具而已。

圖片引用自Tailscale官網

那,能不能強制將所有流量都使用Tailscale傳輸呢?我們可以透過Tailscale的出口節點(Exit Node)功能,將所有Tailscale裝置的流量導向特定節點的出口。

大約就是讓其他裝置使用特定裝置的網路上網的意思。

圖片引用自Tailscale官網

如此一來就有以下應用場景:

  • 加強網路通訊安全性,像使用公共Wifi容易有安全性顧慮,改用Tailscale傳輸就能啟用點對點加密功能。
  • 提升網速,因為使用出口節點上網,所以遠端主機比你的網路快很多的話就會感到有感提升。反之,如果你電腦固網的網速比4G慢的話則網速會降速。
  • 將Tailscale部署在租賃的外國VPS,此時Tailccale的功能就會變得像一般人認知的商業VPN,也就是達成地理IP跨區效果。
  • 將Tailscale部署在台灣家中的NAS,從中國翻牆回自由網路。不過據說不是很穩定,容易被GFW識別流量。

啟用出口節點功能之後,各個節點之間依然可以互相連線。

1. 環境
#

  • Ubuntu 24.04電腦
  • Windows 11 23H2電腦
  • Android 14手機

三部裝置,全部都加入Tailscale網路。

任一作業系統都可以當作Tailscale節點出口,並且同時能有很多個。為了方便操作,我選用Ubuntu當節點出口。

所有的流量應該都會轉發到Ubuntu,所以Android和Windows不論使用什麼方式上網,對外IP都會變得跟Ubuntu一樣。

2. 安裝Tailscale
#

參見 如何安裝Tailscale

Tailscale的中繼伺服器我是直接用官方的,如果你擔心官方伺服器被封鎖,也可以自架Headscale。

3. 設定出口節點
#

  1. 首先要給Linux核心啟用IP Forwarding功能
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
  1. 如果有啟用UFW防火牆,還得允許IP Forwarding
sudo ufw default allow FORWARD

sudo ufw reload
  1. 在Ubuntu執行以下指令,廣播此節點可作為出口
sudo tailscale set --advertise-exit-node
  1. 之後在Tailscale的網頁後台可看到有哪些節點可作為出口

  2. 點進去選單,允許作為出口節點

  3. 然後在對應的Tailscale客戶端進行操作。請確保與Ubuntu之間的連線為Direct而非Relay。

  4. Windows在系統匣面板選取出口節點即可

  5. Android APP也是如此。

  6. 最後,檢查一下對外IP。Ubuntu要檢查公共IP可以使用此指令:

curl https://ipinfo.io/ip
  1. 至於其他裝置,就到 https://www.whatismyip.com網站看看吧,IP應該會變得跟出口節點一致。

參考資料
#

相關文章

Cockpit教學:用網頁瀏覽器管理QEMU/KVM虛擬機,替代Virt Manager
分類   Linux系統 Self-hosting自架
標籤   Libvirt PCI Passthrough GPU Passthrough QEMU-KVM Podman Docker Linux
Rclone教學,簡單搞定Linux電腦雲端硬碟同步,支援Google雲端、OneDrive、Dropbox、MEGA
分類   Linux系統 Linux好用軟體 Self-hosting自架
標籤   Rclone Google Drive Nextcloud Amazon Web Services
Sunshine:Linux版Moonlight教學,自架免費雲端串流遊戲服務+遠端桌面
分類   Linux系統 Self-hosting自架 Linux玩遊戲
標籤   Moonlight Game Streaming Cloud Gaming Remote Desktop Steam Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。