为了实现外部主机能访问局域网服务器(私有ip),我选择了用frp来做内网穿透,当然还可以用ngrok、花生壳等等。
frp
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议
内网穿透讲解:
先租用一个阿里云vps,配置好frp服务端,再在局域网搭建一个web服务器, 并且web服务器配置好frp客户端,做到外网主机访问vps的8080端口时等于访问局域网的web服务器。
准备工作:
vps一台,公网ip
公网域名:xxx.xxx.com
局域网服务器:172.25.1.137
frps服务端配置 (centos7)
1、 首先到 frp 的 releases 页面下载最新版的对应 VPS 的处理器架构的压缩包https://github.com/fatedier/frp/releases
2、可以在主机上wget对应frp压缩包,也可以下载到本地用ftp工具(winscp)上传到云服务器
3、 tar -zxvf 解压对应压缩包
4、进入解压后的目录 frp_0.22.0_linux_amd64
5、编辑配置文件 vim frps.ini
[common]
#frp服务端与客户端连接端口,frps和frpc必须一致
bind_port = 7000
#服务端外部提供的端口
vhost_http_port = 8080
# 仪表盘端口,只有设置了才能使用仪表盘(即后台)
dashboard_port = 7500
# 仪表盘访问的用户名密码,如果不设置,则默认都是 admin
dashboard_user = admin
dashboard_pwd = admin
~
保存退出,
6、启动服务端
./frps -c frps.ini 后台启动为./frps -c frps.ini &
表示启动完成
frpc客户端配置(centos 7)
前提:先搭建好web服务器,我这里使用时Apache,也可以是nginx,这里自己搭建
上传frp压缩包,并解压
编辑vim frpc.ini 配置文件
[common]
#服务端公网ip地址
server_addr = x.x.x.x
#与服务端通信端口
server_port = 7000
[web]
type = http
#本地Apache服务端口
local_port = 80
#公网ip绑定的域名
custom_domains = xxx.xxx.com
启动服务
./frpc -c ./frpc.ini
用浏览器登录访问内部服务器,成功访问
注意事项:
1、云服务器8080端口必须未占用
2、局域网web服务器(ftp客户端)能上网
3、阿里云服务器要开放上面用到的端口8080、7000、7500,在添加安全组规则放行这些端口
浏览文章链接
https://www.jianshu.com/p/a6e9627dbe29