Frp内网穿透

一、Frp简介

frp是一个可用于内网穿透的高性能的反向代理应用,支持tcp、udp协议,为http和https应用协议提供了额外的能力,且尝试支持了点对点穿透。

二、环境准备

1、需要一台可以直接访问外网的服务器,比如腾讯云的云服务器(CVM)服务端

2、需要做内网穿透的服务器,比如公司内部的局域网测试服务器(客户端)

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

选择最新的就行,一般都是Linux环境。

三、内网穿透案例

1、服务端(又公网IP的)

复制代码
# 创建frp存放目录
[root@VM-16-54-centos ~]# mkdir frp

# 下载压缩包
[root@VM-16-54-centos ~]# wget https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.3_linux_386.tar.gz

# 解压
[root@VM-16-54-centos ~]# tar -zxvf frp_0.34.3_linux_386.tar.gz -C ./frp

[root@VM-16-54-centos frp_0.34.3_linux_386]# pwd
/root/frp/frp_0.34.3_linux_386
[root@VM-16-54-centos frp_0.34.3_linux_386]# ll
total 19348
-rwxr-xr-x 1 1001  116  8392704 Nov 20  2020 frpc
-rw-r--r-- 1 1001  116     8328 Nov 20  2020 frpc_full.ini
-rw-r--r-- 1 root root      132 Jul 25 14:35 frpc.ini
-rwxr-xr-x 1 1001  116 11366400 Nov 20  2020 frps
-rw-r--r-- 1 1001  116     4928 Nov 20  2020 frps_full.ini
-rw-r--r-- 1 1001  116      250 Jul 25 12:48 frps.ini
-rw-r--r-- 1 root root      250 Jul 25 13:21 frps.ini.bak
-rw-r--r-- 1 1001  116    11358 Nov 20  2020 LICENSE
-rw------- 1 root root     2147 Jul 25 15:31 nohup.out
drwxr-xr-x 2 1001  116     4096 Nov 20  2020 systemd

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

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

# 服务端配置
[root@VM-16-54-centos frp_0.34.3_linux_386]# vim frps.ini
[common]
# 与客户端建立连接端口
bind_port = 7001
# 与客户端校验的token
token = my_token
# 提供web界面端口
dashboard_port = 7600
# web界面登录用户名
dashboard_user = admin
# web界面登录密码
dashboard_pwd = password

说明:默认的配置信息中只有一个绑定端口为7000,意思是我们在外网服务器中绑定7000端口和客户端进行通信。注:端口可以自定义,但是需要客户端和服务端进行统一,腾讯云cvm要在安全组开放7000端口

# 启动
[root@VM-16-54-centos frp_0.34.3_linux_386]# ./frps -c frps.ini


# 后台启动
[root@VM-16-54-centos frp_0.34.3_linux_386]# nohup ./frps -c frps.ini &

2、客户端(内网服务器)

1)客户端服务器可以访问外网

上传压缩包查看frpc.ini文件,修改为如下内容

复制代码
[common]
# 连接frps的IP地址
server_addr = 124.222.214.105     #公网ip
# 连接frps的端口
server_port = 7001                         #和bind_port要一直
# 和frps服务端校验的token
token = my_token
 
# 这里取名随意,一般有意义就行
[ssh1]
type = tcp
# 本地访问的IP地址
local_ip = 10.9.0.6                        # 转发到的内网ip地址
# 本地访问的端口
local_port = 36000                        
# 在frps服务器上对应的端口        # 通过公网的端口进行转发
remote_port = 6000
#也可以在开放一个端口,看需求
[ssh2]
type = tcp
# 本地访问的IP地址
local_ip = 10.9.0.6
# 本地访问的端口
local_port = 36000
# 在frps服务器上对应的端口
remote_port = 6002

# 启动就好了
nohup ./frpc -c ./frpc.ini > file.log 2>&1 &

2)客户端服务器不可以访问外网

首先自己的pc端需要链接内网服务器的交换机

在自己的pc端安装frp到指定文件夹

修改文件:

复制代码
# 修改frpc.ini文件
[common]
# 连接frps的IP地址
server_addr = 124.222.214.105
# 连接frps的端口
server_port = 7001
# 和frps服务端校验的token
token = my_token
 
# 这里取名随意,一般有意义就行
[ssh1]
type = tcp
# 本地访问的IP地址
local_ip = 10.9.0.6
# 本地访问的端口
local_port = 36000
# 在frps服务器上对应的端口
remote_port = 6000

[ssh2]
type = tcp
# 本地访问的IP地址
local_ip = 10.9.0.6
# 本地访问的端口
local_port = 36000
# 在frps服务器上对应的端口
remote_port = 6002

# 添加静态路由
C:\WINDOWS\system32>route add 10.9.0.0 mask 255.255.255.128 10.9.80.1
永久添加就是:route -p add 10.9.0.0 mask 255.255.255.128 10.9.80.1

# pc端启动服务
C:\Users\郭伟杰\Desktop\frp\frp_0.34.3_linux_386>./frpc -c frpc.ini


启动成功。别人就可以通过公网加指定端口链接穿透的服务器了,会直接跳转到内网服务器

复制代码
[c:\~]$ ssh -p6000 root@124.222.124.105
相关推荐
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https