服务器大本营

 找回密码
 我要入营

QQ登录

只需一步,快速开始

查看: 25|回复: 0

内网穿透工具frp原理和使用教程

[复制链接]

7万

敬重

765

主题

207

精华

管理员

积分
8608

启航之章进阶之印里程之碑突破之证飞跃之星蜕变之勋卓越之路龙年行大运

QQ
发表于 前天 20:32 | 显示全部楼层 |阅读模式

我要入营,结交更多好友,开启更多功能,轻松玩转服务器大本营!

您需要 登录 才可以下载或查看,没有账号?我要入营

x
内网穿透(Port Forwarding)是将公网上的IP地址映射到内部网络中的一台计算机的某个端口上,以便外部网络可以访问该计算机中运行的应用程序。内网穿透技术可以通过一些开源工具来实现,其中比较常用的是frp。在本文中,我们将介绍frp的原理和流程。

一、frp的原理
frp是一款高性能的内网穿透工具,采用客户端-服务器的模式,通过中转服务器将外部网络的请求转发到内部网络中的指定计算机。具体来说,frp的原理如下:
1、客户端向frp服务器发送请求。当客户端启动时,它会向frp服务器发送一条请求,请求服务器分配一个唯一的客户端ID。
2、服务器返回分配的客户端ID。frp服务器将分配一个唯一的客户端ID,并将其返回给客户端。
3、客户端连接到服务器。客户端使用分配的客户端ID连接到frp服务器,以便服务器可以知道客户端要连接的计算机和端口。
4、服务器将请求转发到客户端。当外部网络发出请求时,frp服务器将请求转发到客户端,客户端将请求转发到指定的计算机和端口上。

二、frp的流程

现在让我们来看看如何在frp中设置内网穿透。
1、安装frp客户端和服务器。首先,您需要在内部网络中的计算机上安装frp客户端和frp服务器。您可以从frp的官方网站(https://github.com/fatedier/frp)上下载最新版本的frp。
2、配置frp服务器。在内部网络中的计算机上运行frp服务器,并配置frp服务器以接受来自客户端的请求。在frps.ini文件中配置服务器IP地址和端口,以及TLS证书和密钥。您还可以在配置文件中指定要开放的端口,以便外部网络可以访问。
3、配置frp客户端。在客户端计算机上安装并运行frp客户端,并配置frp客户端以连接到frp服务器。在frpc.ini文件中配置客户端ID,服务器IP地址和端口,以及要转发的端口。客户端ID必须与frp服务器分配的ID匹配,以便服务器可以将请求转发到正确的客户端。
4、测试内网穿透。现在您可以尝试从外部网络中的计算机访问frp服务器上配置的端口。如果一切正常,您应该能够看到内部网络中的应用程序正在运行。

总之,frp是一款非常实用的内网穿透工具,可以让您轻松地将内部网络中的应用程序公开给外部网络访问,而不必暴露内部网络中的计算机。虽然在配置过程中可能需要一些技术知识,但frp的使用非常灵活和方便,并且可以满足各种内网穿透需求。

除了上述的基本流程之外,frp还支持更多的高级功能,例如:

1、端口转发:您可以使用frp将内部网络中的多个端口映射到外部网络的一个端口上,从而简化配置过程。
2、域名解析:您可以将frp配置为使用自己的域名,而不是IP地址,以便更方便地访问内部网络中的应用程序。
3、反向代理:您可以使用frp设置反向代理,以便在内部网络中运行的应用程序可以访问外部网络中的资源。
4、负载均衡:如果您有多个frp客户端和多个应用程序,您可以使用frp的负载均衡功能来分配流量,以确保性能和可靠性。



下面是frp运用的详细流程


一、服务端配置
github地址:
https://github.com/fatedier/frp/releases

内网穿透工具frp原理和使用教程

内网穿透工具frp原理和使用教程


1、打开公网服务器,个人软件服务习惯 放在/opt下
  1. cd /opt/
复制代码
拉取安装
  1. wget https://github.com/fatedier/frp/ ... _linux_amd64.tar.gz
复制代码

内网穿透工具frp原理和使用教程

内网穿透工具frp原理和使用教程


2、解压
  1. tar -zxvf frp_0.48.0_linux_amd64.tar.gz
复制代码

目录如下

内网穿透工具frp原理和使用教程

内网穿透工具frp原理和使用教程


其中frps 是服务端启动脚本,frps.ini是服务端启动配置文件
frpc 是客户端启动脚本 frpc.ini 是客户端启动配置文件

3、修改配置文件 , 因为这里是服务端,所以修改frps.ini
  1. vi frps.ini
  2. [common]

  3. # 绑定服务端端口,给客户端连接的通道
  4. bind_port = 7000
  5. # 设置客户端token
  6. token = WSX#EDC
  7. # 日志 --
  8. log_file = /opt/frp_0.48.0_linux_amd64/log/frps.log
  9. log_level = info
  10. # 日志最多保存天数
  11. log_max_days = 3
复制代码

4、执行
这里我们直接执行
  1. frps -c frps.ini
复制代码

如果没有报错,我们在放在后台持久执行
  1. nohup ./frps -c ./frps.ini &
复制代码

5、查看是否启动成功
  1. netstat -anp|grep 7000

  2. tcp6       0      0 :::7000                 :::*                    LISTEN      4546/./frps
复制代码

6、开放7000端口
  1. firewall-cmd --zone=public --add-port=8090/tcp --permanent
  2. firewall-cmd --reload
复制代码
至此,服务端配置完成

二、客户端配置
1、一样的,先下载 (和服务端是同一个软件包)
  1. wget https://github.com/fatedier/frp/ ... _linux_amd64.tar.gz
复制代码

2、解压
3、然后修改客户端配置文件 vim frpc.ini
  1. [common]
  2. server_addr = xxx.xxx.xxx.xxx # 服务端ip
  3. server_port = 7000 # 与服务器上填写的通信端口一致,和服务端建立通道,连接1
  4. token=!QAZ@WSX#EDC # 和服务器token一致
  5. [ssh]
  6. type = tcp
  7. local_ip = 127.0.0.1
  8. local_port = 8090    # 客户端服务的端口
  9. remote_port = 8090    # 链接上后,服务端会监听这个端口,转发到local_port 上
复制代码

4、打开对应的防火墙端口
5、启动,成功可见如下信息
  1. ./frpc -c frpc.ini
复制代码

内网穿透工具frp原理和使用教程

内网穿透工具frp原理和使用教程


6、看下服务端日志,连接上并且监听了8090端口(服务端也要开启防火墙8090端口哦)

内网穿透工具frp原理和使用教程

内网穿透工具frp原理和使用教程


测试 ,在浏览器输入 服务端ip +8090 端口,就会转到内网服务了

感谢您的阅读,服务器大本营-技术文章内容集合站,助您成为更专业的服务器管理员!
一入IDC深似海,从此你我是良人!
您需要登录后才可以回帖 登录 | 我要入营

本版积分规则

点击直接加入[服务器大本营QQ频道]
滴!摸鱼时间到~
Loading...

QQ|Archiver|手机版|网站地图|服务器大本营 ( 赣ICP备2021009089号 )

GMT+8, 2025-6-15 19:23 , Processed in 0.060425 second(s), 27 queries , Gzip On.

Powered by 服务器大本营

© 2021-2023 联系飞飞

快速回复 返回顶部 返回列表