# 如何使用Ngrok將局域網服務映射到公網
## 什么是Ngrok?
Ngrok是一個輕量級的反向代理工具,能夠將本地局域網服務(如開發中的Web應用、數據庫服務等)通過安全隧道暴露到公網。它支持HTTP、HTTPS、TCP等多種協議,并自動生成可公開訪問的URL,極大簡化了內網穿透的流程。
### 核心功能
- **即時公網訪問**:無需配置路由器或購買云服務器
- **HTTPS支持**:自動為服務提供SSL加密
- **請求監控**:可視化查看所有經過隧道的請求
- **多協議支持**:適用于Web服務、SSH、游戲服務器等
---
## 為什么選擇Ngrok?
### 傳統方案的痛點
1. **路由器配置復雜**:需要DDNS、端口轉發等操作
2. **ISP限制**:家庭寬帶通常沒有固定公網IP
3. **安全風險**:直接暴露內網服務可能被攻擊
### Ngrok的優勢
? 三分鐘快速部署
? 免費基礎版可用
? 無需運維知識
? 企業級數據加密(TLS 1.3)
---
## 安裝指南
### Windows系統
1. 訪問[ngrok官網](https://ngrok.com/)
2. 下載`ngrok.zip`并解壓
3. (可選)將解壓路徑添加到系統環境變量
```powershell
# 驗證安裝
.\ngrok.exe version
# 使用Homebrew安裝
brew install ngrok/ngrok/ngrok
# 或手動下載
curl -O https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-darwin-amd64.zip
unzip ngrok-stable-*.zip
Your Authtoken
ngrok config add-authtoken <你的令牌>
假設本地運行著localhost:8080
的Web服務:
ngrok http 8080
Forwarding https://a1b2-34-56-78-90.ngrok.io -> http://localhost:8080
ngrok http 8080 --subdomain=myapp
→ 生成專屬地址:https://myapp.ngrok.io
ngrok tcp 22 # 轉發SSH服務
創建~/.ngrok2/ngrok.yml
:
tunnels:
webapp:
addr: 3000
proto: http
hostname: myapp.ngrok.io
database:
addr: 3306
proto: tcp
啟動指定隧道:
ngrok start --all
# 只允許特定IP訪問
ngrok http 8080 --allow-ip=203.0.113.1
ngrok http 8080 --auth="username:password"
webhooks:
- name: github
addr: 8080
proto: http
oauth:
provider: github
allow-email: user@example.com
訪問Ngrok控制臺:
http://127.0.0.1:4040
ngrok tcp --region=eu 1883 # MQTT協議轉發
# GitHub Actions示例
- name: Expose preview
run: |
ngrok http 3000 --auth=${{ secrets.NGROK_AUTH }} &
工具 | 協議支持 | 免費額度 | 自托管 |
---|---|---|---|
Ngrok | HTTP/TCP | 有限 | ? |
frp | 全協議 | 100% | ? |
Cloudflare | HTTP only | 充足 | ? |
Localtunnel | HTTP only | 有限 | ? |
Ngrok作為開發者利器,能快速解決以下痛點: - 客戶演示臨時訪問 - 第三方服務回調測試 - 跨地域團隊協作調試
注意:生產環境建議使用付費版或自建內網穿透方案,免費版僅適合臨時測試。
通過本文介紹,您應該已經掌握從安裝配置到高級應用的完整流程?,F在就可以嘗試將您的本地服務發布到公網了! “`
(全文約1600字,實際字數可能因Markdown渲染略有差異)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。