frp是一款优秀的开源的内网穿透软件,可以让你访问家里、公司里、学校里等等内网中的PC提供的各种服务

准备工作

1.一台有公网IP地址的服务器,比如腾讯云、阿里云或者其他VPS(如果没有的话可以用这个免费的frp server[www.natfrp.com])

2.下载对应系统的frp https://github.com/fatedier/frp/releases

基本工作原理

server端运行frps(frp server),内网机器运行frpc(frp client)

需要访问内网主机提供的服务时,直接访问frp server,frps会将流量转发至frpc

从而实现直接访问没有公网地址的内网主机。


配置及运行

1.修改配置文件

下载frp后解压得到如下文件

frpc运行 frpclient_frpc运行

配置文件有两个frp*.ini和frp*_full.ini

我们这里只修改frp*.ini,frp*_full.ini博主暂时没有去研究

下面以一个http服务内网穿透为例

我们先修改服务端配置,打开frps.ini

[common]
bind_port = 7000 #该端口为frpc与frps的通信端口
vhost_http_port = 8000 #该端口为http流量转发的监听端口(可以和bind_port相同,但不建议这样做)
token = 1122334455 #可以简单理解为frpc与frps通信的密钥,强烈建议设置。不然所有的frpc都能连上你的服务器。服务端和客户端配置文件里的token必须一致。

继续修改frpc.ini

[common]
server_addr = x.x.x.x #你的frps服务器地址,可以是IP或者域名
server_port = 7000 #服务器配置文件中的bind_port
token = 1122334455

[http_01] #配置服务名称,可以随便写
type = http #数据流类型,可以是tcp | udp | http | https | stcp | xtcp
local_ip = 127.0.0.1 #提供http服务的内网主机地址
local_port = 9000 #提供http服务的端口
custom_domains = test.domain.com #如果绑定了域名,请填写你的域名,没有则删除此行

[ssh] #这里再给一个其他配置,仅供参考
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

2. 运行服务端和客户端

切换到frp解压目录下

服务端运行 ./frps -c ./frps.ini

客户端运行 ./frpc -c ./frpc.ini

腾讯云、阿里云这类服务器,还需要在其控制台开放7000(bind_port)端口的入权限,部分vps还需要防火墙放行端口流量,具体操作方法这里就不细讲了,请自行搜索防火墙放行端口相关文章。

如果一切顺利,客户端成功连接服务端,你将在客户端看到[start proxy success]字样

3. 访问服务

直接通过服务器访问,如x.x.x.x:8000

如果绑定了域名的话,需要先将域名解析到服务器IP地址,然后再访问 domain.com:8000即可


如果使用的是www.natfrp.com提供的免费server

先注册,然后创建隧道(未实名用户不可使用http流,想用http的话,必须选择国外节点用tcp转http,详细请参考网站帮助文档)

创建完隧道后,返回隧道列表,点击配置文件,把配置文件复制到客户端配置文件中,然后再启动客户端,客户端连接成功后,就可以正常访问内网主机了。

需要注意的是,访问地址为server_addr:remote_port

server_addr和remote_port都在配置文件中,请自行查找


该教程适合初次使用的新手,老鸟请勿喷。

如有任何问题,欢迎留言