先前一篇文章介紹過如何透過免費的 Frps 反向代理伺服器,將內網網站經過映射出去,但因為免費的真的太不穩定,BLOG 和 DEMO 網站,常常服務會掛掉,後來經網友推薦,Google 有免費體驗90天,並給予 300 美金的體驗費用,這篇就來介紹用 GCP (Google Cloud) 來自己架內網穿透伺服器 ( FRPS )
更新系統
sudo apt-get update sudo apt-get upgrade
FRP使用Go語言,大部分Linux主機都有預裝了,但如果你的沒有,可以先執行以下指令
sudo apt-get install bison ed gawk gcc libc6-dev make golang-go vim
接著你必須到FRP的Github上查看最新frps ,並下載他
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
解壓縮檔案並重新命名資料夾為 frp
tar -zxvf frp_0.61.0_linux_amd64.tar.gz sudo mkdir /var/frps sudo mv frp_0.61.0_linux_amd64/* /var/frps/ cd /var/frps
編輯 frps 的設定檔 (sudo vim frps.toml)
# frps.toml bindAddr = "0.0.0.0" bindPort = 7000 vhostHttpPort = 80 vhostHttpsPort = 443 webServer = { port = 7500, user = "admin", password = "your password", addr="0.0.0.0" } auth.method = "token" auth.token = "your token"
執行
sudo ./frps -c ./frps.toml
首先將挷定 DNS 將 proxy.markkulab.net 指向 FRPS 主機外部IP 接著,挷定 CNAME,這樣訪問者訪問 blog.markkulab.net frps 就會指到指定用戶端映射的網站
serverAddr = "35.223.172.254" serverPort = 7000 auth.token = "your token" transport.poolCount = 10000 [[proxies]] name = "test-tcp" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000 [[proxies]] name = "ShopCarthttps1" type = "http" customDomains = ["www.letgo.com.tw"] localPort = 8896 [[proxies]] name = "linebot" type = "https" customDomains = ["linebot.letgo.com.tw"] [proxies.plugin] type = "https2http" localAddr = "127.0.0.1:48002" crtPath = "/Public/!.letgo.com.tw/fullchain.crt" keyPath = "/Public/!.letgo.com.tw/cert.key" hostHeaderRewrite = "linebot.letgo.com.tw" requestHeaders.set.x-from-where = "frp"
sudo vim /lib/systemd/system/frps.service
建立自動啟動設定檔
[Unit] Description=FRP Server After=network.target Wants=network.target [Service] Restart=on-failure RestartSec=5 ExecStart=/var/frps/frps -c /var/frps/frps.toml [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload // reload service sudo systemctl stop frps.service //停止 FRP Server 服務 sudo systemctl start frps.service //啟動 FRP Server 服務 sudo systemctl restart frps.service //重啟 FRP Server 服務 sudo systemctl disable frps.service //開機時不要啟動 FRP Server 服務 sudo systemctl enable frps.service //開機時自動啟動 FRP Server 服務 sudo systemctl status frps.service //查看FRP Server 狀態
windows 測試防火牆有沒有關
telnet 35.223.172.254 7000
linux 測試防火牆有沒有開
nc -zv 127.0.0.1 7000
sudo mkdir -p /etc/frp
cd /etc/frp sudo wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz sudo tar -zxvf frp_0.61.0_linux_amd64.tar.gz --strip-components=1
sudo vim /etc/frp/frpc.toml
frpc.toml
serverAddr = "your server" serverPort = 7000 auth.token = "your token" transport.poolCount = 10000 [[proxies]] name = "jks" type = "https" customDomains = ["jks.letgo.com.tw"] [proxies.plugin] type = "https2http" localAddr = "127.0.0.1:8080" crtPath = "/var/frpc/letgo/fullchain.crt" keyPath = "/var/frpc/letgo/cert.key" hostHeaderRewrite = "jks.letgo.com.tw" requestHeaders.set.x-from-where = "frp"
/etc/frp/frpc -c /etc/frp/frpc.toml
sudo vim /lib/systemd/system/frpc.service
[Unit] Description=FRP Client After=network.target Wants=network.target [Service] Restart=on-failure RestartSec=5 ExecStart=/etc/frp/frpc -c /etc/frp/frpc.toml [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload // reload service sudo systemctl stop frpc.service //停止 FRP Server 服務 sudo systemctl start frpc.service //啟動 FRP Server 服務 sudo systemctl restart frpc.service //重啟 FRP Server 服務 sudo systemctl disable frpc.service //開機時不要啟動 FRP Server 服務 sudo systemctl enable frpc.service //開機時自動啟動 FRP Server 服務 sudo systemctl status frpc.service //查看FRP Server 狀態
最後將VM建在台灣節點,聽說Google的機房在嘉義,網速超級快,也很穩定,一個月差不多150元台幣左右,就能擁有反向代理及一個固定IP,其實蠻滑算的
在免費試用期結束後,我們還是可以在限制的用量內免費使用特定產品。例如最常見的 Google Compute Engine 就提供了以下免費條件:
僅限美國地區「us-central1」、「us-east1」和「us-west1」
f1 的方案 就算放在台灣一個月也只要 5.6 *27.82 (美金匯率) = 約 155 台幣左右