搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)

(一)前言

除了用于反向代理tcp/udp协议,frp还能够代理http协议。其中,将内网的web服务,例如WordPress个人博客,代理至外网以进行访问是最常见的应用场景。

我强烈推荐在个人Linux服务器上安装宝塔面板。一旦安装了宝塔面板,它会推荐您安装LAMP或者LNMP技术栈,这是搭建网站所必需的基础设施。我选择了LNMP(Linux+nginx+mysql+php)进行安装。一键安装完LNMP后,接下来可以轻松搭建个人网站。我选择了WordPress,而在宝塔面板中安装WordPress几乎也只需一键即可完成安装。

搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图
宝塔linux界面,一键安装LNMP技术栈后,接下来就可以创建wordpress个人博客
搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图1
在内网机器上安装了wordpress后,就可以登录localhost去访问。我用的是8085端口

(二)配置frp内网穿透

我们运行个人wordpress,不是为了晚上回家,一个人在自己的内网电脑上欣赏,那没有任何意义。我们必须把它发布出去,在外网也能方便的访问到。我们需要借助于frp内网穿透,将运行在内网机器上的博客,发布到外网上去。为此,需要修改frp server和client的配置。

虽然看frp的官网的http例子,配置很简单,实际我折腾了很久才搞定,原因后面会说。

搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图2
frp server的配置(腾讯云服务器),采用8085端口
搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图3
腾讯云服务器控制面板防火墙,需要放行8085端口
搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图4
腾讯云服务器,也需要放行8085端口

搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图5
frp client的配置(内网服务器),local_port采用8085端口,custom_domains需要填写云服务器的公网ip地址

折腾很久的原因是:

1)我发现,frp client的local_port和frp server的vhost_http_port必须保持一致,比如说这里都是8085。如果不一致,无论怎么try,在外网都登录不上去。这一点,是和网上的很多教程不一致的地方,原因不详。大家如果遇到类似问题,注意这个地方。

2)custom_domains可以填写域名,也可以填写ip地址。frp官网写的不详细,导致我误以为是填写内网机器的域名或者ip(比如说192.168.0.132,或者127.0.0.1)。实际上不是!实际上,这里需要填写外网服务器(云服务器)的公网ip或者域名。如果填域名的话,这个域名必须是绑定了这个云服务器的,并且通过了工信部认证的域名。

(三)修改了frps.ini和frpc.ini后,需要重启frp服务。(server和client都要重启)

重启服务的方法,见我前面的文章。实际上我是用systemctl来管理frp服务的。只需要运行:

sudo systemctl restart frp

(四)效果验收

搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图6
在外网输入114.132.51.2:8085,可以访问到内网的blog,成功了!但是注意,只成功了一半。如果这个时候点击任何一个链接,发现不能打开,可以看到链接的URL路径是错误的
搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图7
登录wordpress个人管理界面,点击设置,修改URL的路径
搭建frp服务器,实现内网穿透和远程访问(三. http和wordpress)插图8
再点击"Hello world"的链接,可以正确打开了

原文链接:https://zhuanlan.zhihu.com/p/659428394?utm_id=0

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享