疫情期間大家都在討論 遠程辦公的實現,推薦看下黃東旭大佬 寫的 《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 安裝包
github.com/fatedier/fr…
- 解壓壓縮包,修改 frps.ini
<code>[common]
bind_port = 7000 # frps 服務啟動,佔用的端口
vhost_http_port = 80 # frps 服務監聽轉發的端口/<code>
- 啟動 frps 服務
<code>./frps -c ./frps.ini/<code>
安裝 frp(frpc)客戶端
- 在目標內網設備機器,安裝客戶端。 根據操作系統下載不同版本
自定義域名訪問內網服務
- 修改 frpc.ini
<code>[common]
server_addr = ECS的公網IP
server_port = 7000
[隨意但必須唯一]
type = http
local_port = 本地目標服務的端口
custom_domains = 自定義的域名/<code>
- 啟動客戶端
<code>./frpc -c ./frpc.ini/<code>
- 訪問 自定義域名即可訪問內網的服務
使用ssh訪問公司內網機器
- 修改 frpc.ini
<code>[common]
server_port = 7000
[隨意但必須唯一]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10022/<code>
- 啟動客戶端
<code>./frpc -c ./frpc.ini/<code>
- 通過 ssh 訪問內網機器
<code>ssh -p 10022 [email protected]/<code>
鏈接:https://juejin.im/post/5e325019e51d453c9e15618d
閱讀更多 Java技術前沿 的文章