基于Frp搭建Window-Linux内网穿透完整流程

什么是内网穿透?

                内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,具有一个动态或者是固定的公网IP,最后ADSL直接在 交换机 上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决UDP中出现的数据传输不稳定问题。

更多前置知识讲解请参考这篇讲解文章icon-default.png?t=N7T8https://baijiahao.baidu.com/s?id=1763021377708275888&wfr=spider&for=pc

基于Frp搭建Window-Linux内网穿透

前置硬件条件:一台Linux云服务器 + 一台本地Window

原理概述

        Frp的内网穿透技术采用的是端口映射方案,端口映射是内网穿透技术中最简单的实现方案之一。它可以将内部网络中的某个服务的端口映射到公网上的某个端口。这样,在外部网络上访问公网端口时,就可以实现访问内部网络中的服务。需要注意的是,为了保证安全性,我们需要对映射的端口进行限制,只允许特定的IP地址访问。

        由于内网服务缺乏公网 IP 地址或者某些原因用户不能直接访问,用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。实际流量会变成 client->frps->frpc

frp工作原理

1.服务端运行,监听一个主端口,等待客户端的连接;
2.客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
3.服务端fork新的进程监听客户端指定的端口;
4.外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
5.客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

一:下载FRP的Linux和Window资源

通过GitHub的releases本地下载(https://github.com/fatedier/frp/releases),这里我下载的版本是0.49

将Linux版本的Frp上传到自己的云服务器上后进行解压:

tar -zxvf frp_0.49.0_linux_amd64.tar.gz

目录结构如下:

Window版本的Frp就正常解压就好,目录如下:

二:修改Linux服务端配置文件

  • 在服务器上修改frps.ini文件
vim frps.ini
  • 修改如下配置:
[common]
# 服务端和客户端的TCP通信端口, 建议1024以上端口
bind_port = 7000
# 客户端访问服务端的密码
token = xxx
# 服务端仪表盘的端口, 可以用浏览器访问查看
dashboard_port = 7500
# 服务端仪表盘的用户密码
dashboard_user = xxx
dashboard_pwd = xxx
token = 12345
# 日志保存设定, 保存位置、保存时长
log_file = ./frps.log
log_level = info
log_max_days = 3
  • 开启服务并后台自启动:
nohup ./frps -c frps.ini
  • 访问页面进行测试:浏览器访问 云服务器IP:7500,出现下述界面则说明我们成功开启了服务器端 frp 服务

三:修改Window客户端配置文件

  • 修改frpc.ini文件
[common]
server_addr = 云服务器IP
server_port = 7000
token = 服务器上配置的鉴权token

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 8801 # 客户端对外服务的端口
remote_port = 8801 # 映射本地的哪个端口
  • cmd命令行运行frp客户端
./frpc -c frpc.ini
  •  出现下述界面则说明我们成功开启了客户端 frp 服务

 四:测试效果

我在本地启动了一个端口为8801后端项目,展示效果如下:

基于内网映射访问本地:

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学徒630

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值