FRP搭建内网穿透

前言

内网穿透方式很多,可以用公网IP进行端口映射,DDNS等。现在我有个云服务器,使用它做中转作为内网穿透的工具。

可以在这个网址了解下原理基础:内网穿透工具的原理与开发实战

FRP内网穿透

FRP是一个内网穿透的反向代理应用。选择FRP是因为支持 TCP、UDP、HTTP、HTTPS 等多个协议和功能

这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

操作准备

  • 拥有公网Ip的服务器
  • 内网服务器

下载安装

下载地址:https://github.com/fatedier/frp/releases/tag/v0.45.0

1.选择合适的版本安装

我这下载linux_amd64,成功后,解压

tar -zxvf frp_0.27.0_linux_amd64.tar.gz

mv frp_0.27.0_linux_amd64 frp

2.进入frp文件夹

查看文件如下

FRP搭建内网穿透_第1张图片

  • frpc:客户端可执行程序
  • frpc_full.ini:客户端所有配置项(可以再此文件查看frp的所有的配置项)
  • frpc.ini:客户端配置项
  • frps:服务端可执行程序
  • frps_full.ini:服务端所有配置项(可以再此文件查看frp的所有的配置项)
  • frps.ini:服务端配置项
  • LICENSE:许可证

  • 服务端只需要编辑frps.ini文件
  • 客户端只需要编辑frpc.ini文件

运行

# 运行服务端
./frps -c frps.ini
# 启动客户端
./frpc -c ./frpc.ini

实战:搭建SSH连接访问内网计算机

  • 拥有公网Ip的服务器部署FRP服务端
  • 内网服务器部署FRP客户端

1.在公网服务器下载frp解压编辑frps.ini文件,设置 frp 服务器用户接收客户端连接的端口

[common]
bind_port = 7000

启动

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

2.在内网服务器下载frp解压编辑frpc.ini文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:

[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

22代表SSH监听的端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

启动

# 启动客户端
./frpc -c ./frpc.ini

3.测试访问

ssh -oPort=6000 [email protected]

其他

正常运行关闭终端后就会停止,所以后台保持运行方式如下:

使用nohup,比如启动服务端

nohup ./frpc -c ./frpc.ini > frpc .log 2>&1 &

具体可以看这个使用教程

其他的穿透场景可以看官方教程:官方文档

你可能感兴趣的:(操作记录,服务器,网络,运维,FRP,内网穿透)