在 AWS 上使用 EC2 建立 FRP 玩玩內網穿透
前言 TL;DR 2022 年上旬熱衷於軟路由,在 Raspberry Pi 4b 上裝了 openWRT 來玩,使用 USB 網卡作為 LAN NIC,雖然使用上完全沒有問題,但透過 USB 始終有個芥蒂,「就不能多個 pci-e 來接網卡嗎」,於是衝動順勢買了 Mikrotik RB5009UG+S+IN。 RB5009G 為 arm64(ARMv8),系統為 RouterOS v7,透過 ZeroTier 插件可以實現內網穿透以及 VPN,一直以來可在外連回家裡做事,連 Jellyfin 使用起來都很順。 事出必有因,ZeroTier 的服務器在未知的地方,VPN 的設定也是在網頁上設定,即便不需要太過擔心,但若是 ZeroTier 被攻擊,那自己的內網也危險了。後來又遇到一次,在某處透過 Windows rdp 連回家開 VScode 做事,但敲鍵盤會有一到兩秒的延遲,加劇了需要替換掉 ZeroTier 的想法。 frp 是一個由 golang 寫出來的 reverse proxy…,其他的到 github 看比較清楚 XD。 這篇文章主要是透過 frp 建立內網穿透,雖然大部分都在建立 AWS EC2 instance,frp 的建立實在是非常簡單,VPN (maybe WireGuard?)的實現會另外再寫一篇。 事前準備 一個 AWS 帳號 一台 linux 主機作為 frp client 建立 Amazon EC2 建立執行個體 建立好帳號後,進入 AWS console,點擊 EC2。 點擊啟動執行個體 取名為 frp-tunnel 選用自己習慣的 linux distro,這邊我習慣使用 ubuntu,故選 ubuntu 22.04。 執行個體類型選 t2.micro,金鑰由於安全因素,請建立新的金鑰對(key pair) 由於我使用 ubuntu 22.04,故使用 ED25519 來加密(RSA 已被淘汰)。下載下來的 pem or ppk 需要好好保存,未來不能再下載。 網路設定的部分,ssh 的 source 使用我的IP,不要一開機就被陌生人打穿。 設定存儲的部分,若是使用 AWS Linux 的話可以預設 8GB 沒問題,我自己的 ubuntu vm 習慣 20GB,所以設成 20GB。 最後確認一下右邊的摘要,就可以點擊啟動執行個體。 建立完成後就會轉跳至完成頁面。 ssh 連線至 EC2 在 console 頁可以看到剛剛建立的 EC2 instance,點擊可以進入 instance 頁面。 ...