疫情期間大家都在討論 遠端辦公
的實現,推薦看下黃東旭大佬 寫的 《PingCAP的5年遠端辦公實踐》,以下內網對映工具作為常用補充。
來講講為啥要做內網對映
從公網中訪問自己的內網裝置一直是個麻煩事情,尤其是做微信開發等。裝置可能處於路由器後,或者運營商因為IP地址短缺不給你分配公網IP地址。如果我們想直接訪問到這些裝置,一般非常麻煩。
- 求網管大佬在路由器上給自己內網加個
埠對映
- 購買
花生殼
等動態域名解析軟體 - 使用 natapp 等免費(也有付費的)的提供的內網對映服務
- 基於
ngrok/frp
自建內網對映服務
為什麼放棄 ngrok
,使用 frp
我們在2016年提供了一個ngrok
的免費服務,並且分享了搭建的步驟可以參考《Angrok 一個內網穿透服務》 ,搭建步驟對於一般的使用者非常不友好,後邊也就停止了相關的服務轉向了 frp
。
Github 的關注度對比
穿透協議支援
frp 支援 http ssh tcp udp ftp 等協議
開始動手
準備工作
搭建一個完整的frp服務,我們需要
- 公網IP 的 ECS 一臺
- 域名 (若不需要解析則不需要)
安裝 frp (frps)
服務端
- 下載 frp 安裝包
- 解壓壓縮包,修改
frps.ini
[common]
bind_port = 7000 # frps 服務啟動,佔用的埠
vhost_http_port = 80 # frps 服務監聽轉發的埠
複製程式碼
- 啟動
frps
服務
./frps -c ./frps.ini
複製程式碼
安裝 frp(frpc)
客戶端
- 在目標內網裝置機器,安裝客戶端。 根據作業系統下載不同版本
自定義域名訪問內網服務
- 修改
frpc.ini
[common]
server_addr = ECS的公網IP
server_port = 7000
[隨意但必須唯一]
type = http
local_port = 本地目標服務的埠
custom_domains = 自定義的域名
複製程式碼
- 啟動客戶端
./frpc -c ./frpc.ini
複製程式碼
- 訪問 自定義域名即可訪問內網的服務
使用ssh訪問公司內網機器
- 修改
frpc.ini
[common]
server_port = 7000
[隨意但必須唯一]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10022
複製程式碼
- 啟動客戶端
./frpc -c ./frpc.ini
複製程式碼
- 通過 ssh 訪問內網機器
ssh -p 10022 root@x.x.x.x
複製程式碼