内网穿透小白极速入门之FRP

内网穿透主要是用于没有公网IP的环境中暴露内网搭建的某些服务给外部访问使用的。

简单示意图如下,假如你在自己家里启动了个工程,希望所有人都能看到,如果有公网ip的情况直接访问你的IP地址即可。
而没有公网IP我们就需要借助内网穿透,内网穿透的简单理解就是图中第二种方式,你可以借助一台有公网IP的服务器和你的局域网搭建起一个网络隧道,你每次向这个VPS服务器的请求它都帮你转发到了你的局域网中去,这样你就能于内网中的服务器进行通信。


内网穿透.png

FRP是一款非常简单强大的内网穿透工具
FRP官方下载地址
FRP官方中文文档

去官方的地址下载对应的软件(版本号建议选择最新版本)
Linux64位 frp_0.25.1_linux_amd64.tar.gz
Windows64位frp_0.25.1_windows_amd64.zip

一、配置服务端

1.可以在上面的下载地址下载对应的软件包解压后使用Winscp传到你的服务器上,也可以直接使用wget下载

wget https://github.com/fatedier/frp/releases/download/v0.25.1/frp_0.25.1_linux_amd64.tar.gz

2.解压文件

tar -zxvf frp_0.25.1_linux_amd64.tar.gz

解压后得到下面的文件列表
frps、frps.ini这个两个是服务端文件,frpc、frpc.ini这两个是客户端文件
因为在服务端我们不需要客户端所以我们可以删除或者忽视frpc、frpc.ini开头的文件
frps_full.ini、frpc_full.ini是官方的demo配置这里先忽略掉吧。


image.png

3.编辑服务器端配置文件

修改成以下内容

# frps.ini
[common]
bind_port = 7000          #重要! 与FRP客户端通信使用的端口
vhost_http_port = 8080    #HTTP访问端口

4.启动FRP服务

临时启动

./frps -c ./frps.ini

启动成功后如下图所示(7001是因为我bind_port绑定的是7001端口)

image.png

后台启动

nohup ./frps -c ./frps.ini &

二、配置客户端

同样的先是在客户端下载软件

1.配置客户端文件(FRP与常见的内网穿透不一样,穿透隧道的配置都是在客户端配置的)

[common]  
server_addr = 120.56.37.*      #公网服务器ip  填写你自己的
server_port = 7000              #与服务端bind_port一致  
  
#公网通过ssh访问内部服务器  
[ssh]  
type = tcp                      #连接协议  
local_ip = 127.0.0.1            #内网服务器ip  
local_port = 22                 #ssh默认端口号  
remote_port = 6000              #自定义的访问内部ssh端口号  
  
#公网访问内部web服务器以http方式  
[web]  
type = http                     #访问协议
local_ip = 127.0.0.1            #内网服务器ip 
local_port = 80                 #内网web服务的端口号  
custom_domains = abc.com     #绑定域名,并非这里配置后就能直接通过域名访问,需要自己对域名进行解析,解析IP为server_addr所填写的服务器IP

2.启动客户端

nohup ./frpc -c ./frpc.ini &

如果是windows直接运行frpc.exe即可,运行后,可以使用任意的设备打开浏览器访问abc.com就可以访问到客户端机器上的80端口了。