疫情期間大家都在讨論 遠端辦公
的實作,推薦看下黃東旭大佬 寫的 《PingCAP的5年遠端辦公實踐》,以下内網映射工具作為常用補充。
來講講為啥要做内網映射
從公網中通路自己的内網裝置一直是個麻煩事情,尤其是做微信開發等。裝置可能處于路由器後,或者營運商因為IP位址短缺不給你配置設定公網IP位址。如果我們想直接通路到這些裝置,一般非常麻煩。
- 求網管大佬在路由器上給自己内網加個
端口映射
- 購買
等動态域名解析軟體花生殼
- 使用 natapp 等免費(也有付費的)的提供的内網映射服務
- 基于
自建内網映射服務ngrok/frp
為什麼放棄 ngrok
,使用 frp
ngrok
frp
我們在2016年提供了一個
ngrok
的免費服務,并且分享了搭建的步驟可以參考
《Angrok 一個内網穿透服務》,搭建步驟對于一般的使用者非常不友好,後邊也就停止了相關的服務轉向了
frp
。
Github 的關注度對比
穿透協定支援
frp 支援 http ssh tcp udp ftp 等協定
開始動手
準備工作
搭建一個完整的frp服務,我們需要
- 公網IP 的 ECS 一台
- 域名 (若不需要解析則不需要)
安裝 frp (frps)
服務端
frp (frps)
- 下載下傳 frp 安裝包
- 解壓壓縮包,修改
frps.ini
[common]
bind_port = 7000 # frps 服務啟動,占用的端口
vhost_http_port = 80 # frps 服務監聽轉發的端口
- 啟動
服務frps
./frps -c ./frps.ini
frp(frpc)
用戶端
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 [email protected]