frp + Nginx实现内网穿透 配置多个子域名访问内部服务
缘起
公司搬家,新家不能装专线,静态ip消失,改为动态IP了,这样内部服务器在外网就没法访问了,所幸我们有一台云服务器,有公网ip。这里只提示写这篇博客的原因,下面的操作是在我个人腾讯云服务器(带公网ip)和个人PC上测试使用,亲测通过。公司阿里云服务器是生产环境,拿来测试会影响线上。
环境准备
- 已备案的域名一个
- 带公网ip的云服务器
- pc一个
- frp0.30.0 frp github下载地址
- nginx1.10.3
云服务器安装nginx和frp
- 安装 frp
这里简单说一下frp,frp是用go语言开发的内网穿透工具,分为frpc,frps。frpc是客户端,安装在内网,frps是服务端,安装在具有公网ip的服务器上,frpc和frps协商一个通讯端口,frpc启动的时候会通过这个通讯端口去连接frps,实现内网穿透(并没有去看源码,只是大致猜测是这样)。frps可以配置vhost_http_port来实现虚拟主机服务,浏览器请求[公网ip]:[vhost_http_port]
,frps会把这个请求转发给frpc,frpc接收到后再转发给服务提供者,可以实现内网服务访问,具体请看: