冷冷 · 2020年01月30日

【远程办公】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 安装包

https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_darwin_amd64.tar.gz

  • 解压压缩包,修改 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
项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

推荐阅读
关注数
1
文章数
28
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息