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
相关推荐
MwEUwQ3Gx2 小时前
常见Linux权限提升笔记
linux·运维·笔记
bIo7lyA8v2 小时前
如何用SSH访问远程服务器上的内网服务(如:MySQL、Redis、Kafka)?
服务器·mysql·ssh
小邓睡不饱耶2 小时前
花店花品信息管理系统开发实战:Python实现简易门店管理系统
服务器·python·microsoft
ken22322 小时前
安装问题@ ubuntu 24.04 :efi 磁盘分区,挂载
linux·运维·ubuntu
white-persist3 小时前
【vulhub weblogic CVE-2017-10271漏洞复现】vulhub weblogic CVE-2017-10271漏洞复现详细解析
java·运维·服务器·网络·数据库·算法·安全
数据知道3 小时前
claw-code 源码详细分析:`reference_data` JSON 快照——大型移植里「对照底稿」该怎么治理与演进?
linux·python·ubuntu·json·claude code
kvo7f2JTy3 小时前
吃透Linux/C++系统编程:文件与I/O操作从入门到避坑
java·linux·c++
Deitymoon3 小时前
linux——守护进程
linux
TON_G-T3 小时前
useEffect为什么会触发死循环
java·服务器·前端