3

frp免费内网穿透访问家用电脑本地服务(http示例)

 2 years ago
source link: https://segmentfault.com/a/1190000041606761
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

别人是无法通过一个链接访问到你家里的电脑的某个文件夹里面的文件的,因为你家里的电脑属于内网,而能通过一个链接去访问的属于公网,所以这就需要使用【内网穿透】这一个技术概念去实现远程访问家里电脑。

frp是什么

frp是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。

frp整个服务过程就是这样,与其说是免费,实际上你也是需要一台服务器来实现。如果你有服务器,那就好办,如果没有服务器,要么购买服务器,要么就借用他人服务器去搭建这个frp穿透服务。

frp下载

frp是免费开源的,可以在GitHub下载对应的版本:https://github.com/fatedier/f...

因为我是Linux服务器做服务端,Windows系统作为客户端,所以我这边就下载了两个版本,一个是用于架设服务端frp一个用于架设客户端。

frp安装

安装文档(中文):https://gofrp.org/docs/setup/

我的服务器是使用宝塔面板,直接在宝塔面板的【文件】根目录下的www/wwwroot/目录下创建了一个frp目录,然后将frp_0.41.0_linux_386.tar.gz解压后这三个文件上传到这个目录。

这三个文件是服务端frp的二进制文件和配置文件。

这样就已经是部署好了服务端,接着就是部署客户端。因为我的客户端是Windows,所以我刚才下载了2个frp版本,刚才部署的是Linux服务器的服务端,现在部署的是Windows客户端。将frp_0.41.0_windows_386.zip解压后这三个文件复制到你电脑的任意目录下,我这里是放在D盘的frp目录。

image.png

配置和启动frp实现http访问内网服务

在宝塔面板的文件管理面板中找到frp的文件目录双击frps.ini打开配置文件,如下图进行配置。

image.png

服务端配置

[common]
bind_addr = 0.0.0.0
bind_port = 7000
privilege_token = 12345678
vhost_http_port = 8080

说明:bind_addr是服务器本地ip,bind_port是服务器本地开放出来用于frp的端口,privilege_token是用于服务端和客户端的一个安全验证的token令牌,vhost_http_port是服务端对外开放的一个http端口,原则上是使用80端口的,但是一般有服务器会架设80端口用于其他网站或者服务了,所以80应该会被占用,这里就使用8080代替80端口。

客户端配置

打开客户端frp的配置文件frpc.ini,我这里使用sublime text3打开,你也可以使用记事本或者其他代码编辑器打开。

image.png
image.png

[common]
server_addr = xxx.xx.xx.x
server_port = 7000
privilege_token = 12345678

[httpname]
type = http
local_port = 80
local_ip = 127.0.0.1
custom_domains = www.qq.com

说明:server_addr是服务器的ip地址,server_port是服务端frp设置的开放端口,privilege_token是服务端设置的token,type是http服务,local_port是客户端的本地服务端口(我这里的客户端是家里的电脑),家里电脑搭建了一个网站并且使用phpstudy在本地开启了服务,所以是80端口,local_ip是客户端http服务的ip地址,本地服务的ip地址都是127.0.0.1,custom_domains是绑定的域名,你需要去解析这个域名到你的服务器的ip上。

以上服务端和客户端配置完成。

开启frp服务

打开宝塔面板的【终端】

image.png

通过cd命令cd到你的frp服务端的目录下再去执行下面的命令启动frp服务端。

./frps -c ./frps.ini

服务端启动之后,再去启动客户端。因为我的客户端是windows,所以使用cmd进行启动。在frp的客户端的目录下的文件目录上输入cmd按回车进入cmd命令行工具。

image.png
image.png

直接输入frpc.exe按回车启动客户端。

当以上配置都完成了之后,你的frp内网穿透服务即可使用。

image.png

在浏览器输入你刚才配置的域名和frp服务端对外服务的端口号即可通过http访问内网的服务。例如你的域名是www.qq.com,当初配置的服务端http端口是8080,那么就要访问:http://www.qq.com:8080,注意,一定要在服务器开放以上涉及到的端口,无论是8080还是7000端口,都需要开放,具体开放位置是宝塔面板的【安全】

image.png

我是使用phpstudy在家里电脑搭建了一个网站,所以直接访问即可显示。

image.png

作者:TANKING
Web:www.likeyunba.com
WeChat:sansure2016(加我可进技术群)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK