内网穿透主要是用于没有公网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端口)
后台启动
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端口了。
网友评论