由于需要做微信公众号开发,就用frp做了一个内网穿透。
1.环境说明
(1).一台云服务器,公网IP为:X.X.X.X(以阿里云为例,frp的服务端)
(2).一个备案域名(可以是二级域名),并解析指向到上面的IP。
以test1.cn为例。
(3).一台客户机(frp客户端,可以上网)
(4).frp软件,以当前最新版本0.60.0为例。
(5).其余的不说了,例如:自己的公众号程序,nginx等。
2.云服务配置
(1).编辑frps.toml
bindPort = 7000 # frps服务监听端口log.to = "console" # [可选] 日志配置, 通过打印的方式输出日志
vhostHTTPPort = 80 # [可选] http 代理需要, 当访问该端口时就转到对应本地 frpc 代理
vhostHTTPSPort = 443 # [可选] https 代理需要, 当访问该端口时就转到对应本地 frpc 代理# 身份验证
auth.method = "token" # [可选] 身份验证方式
auth.token = "123456" # [可选] token 设置, 只有客服端设置了相同 token 才能身份校验通过, 其实就是密码# 下面是服务端仪表板配置
webServer.port = 7300 # 端口设置
webServer.addr = "0.0.0.0" # IP 设置
webServer.user = "admin" # 仪表盘用户名设置
webServer.password = "123456" # 仪表盘用户密码设置
(2).启动执行:frps.exe -c frps.toml
3.云服务器防火墙配置
以阿里云为例,配置安全组,允许访问7000,80,443,7300端口,在这里就不再截图了。
如果云服务器操作系统启用了防火墙,也要一并设置。
4. 客户机配置
(1).编辑frpc.toml
serverAddr = "X.X.X.X"
serverPort = 7000
log.to = "console" # [可选] 日志配置, 通过打印的方式输出日志
auth.token = "123456" # [可选] token 设置, frps 设置的 token, 其实就是密码[[proxies]]
name = "xcypt http"
type = "http"
localPort = 80
customDomains = ["test1.cn"][[proxies]]
name = "xcypt https"
type = "https"
localPort = 443
customDomains = ["test1.cn"]
(2).启动执行:frpc.exe -c frpc.toml
5. 访问内网应用
假设有一个tomcat web 应用,无nginx时网址:http://127.0.0.1:8080/test 。
用nginx代理后:http://127.0.0.1/test 。
此时从外网访问这个应用,浏览器地址:http://test1.cn/test,就可以看到部署在内网的应用。
6. 仪表盘,访问: http:// x.x.x.x:7300
下载地址:frp_0.60.0_windows_amd64.zip