通过frp实现内外网映射

frp介绍和使用方法可以参考官网:安装 | frp

1、准备两台服务器,一台内网服务器A,一台有公网ip的外网服务器B(47.12.13.15)

2、去官方仓库下载frp安装包:Releases · fatedier/frp · GitHub

下载包根据自己服务系统选择

3、先在外网服务器B上安装frp服务端

把下载好的frp_0.51.3_linux_amd64.tar.gz上传到外网服务器B,进行解压

复制代码
tar zxvf frp_0.51.3_linux_amd64.tar.gz

解压后会得到如下目录

​ 其中frpc是客户端命令,frpc.ini是客户端配置文件;frps是服务端命令,frps.ini是服务端配置文件。

我们这里在外网服务器B启动的是服务端frp,修改配置文件frps.ini,在配置文件加入如下内容:

复制代码
[common]
# 客户端链接服务器的端口,在客户端配置时要一样
bind_port = 7000
# 管理控制台端口
dashboard_port = 7001
#允许映射的端口,如果是阿里云这种需要开放安全组,放行端口访问
allow_ports = 50050-50090
# 客户端链接的密码,在客户端配置时要一样
token = xarc123
# 管理控制台用户吗
dashboard_user = admin
# 管理控制台密码
dashboard_pwd = 123456
log_file = /data/frp/logs/frps.log
# 日志级别
log_level = info
# 日志记录天数
log_max_days = 3
# 链接迟最大数量

其中密码和token可以设置的复杂一点,要注意这里配置的token,等下在客户端安装frp的时候,要把这个token也配置到客户端

配置文件配置完成后,我们这里已经可以通过下面的命令来启动frp服务了

复制代码
/home/frp/frp_0.51.3/frps -c /home/frp/frp_0.51.3/frps.ini

or后台启动方式
/home/frp/frp_0.51.3/frps -c /home/frp/frp_0.51.3/frps.ini &

启动成功后,我们可以通过访问地址:http://47.12.13.15:7001/static/#/

查看frp服务端面板信息,如图:

4、安装systemd ,通过service启动和开机自动启动

4.1、安装 systemd

如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:

复制代码
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

4.2、创建 frps.service 文件

使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。

复制代码
$ sudo vim /etc/systemd/system/frps.service

在文件中写入如下内容

复制代码
[Unit]
# 服务名称,可自定义
Description = frps server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /home/frp/frp_0.51.3/frps -c /home/frp/frp_0.51.3/frps.ini

[Install]
WantedBy = multi-user.target

4.3、使用 systemd 命令管理 frps 服务

复制代码
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

4.4、设置 frps 开机自启动

复制代码
sudo systemctl enable frps

至此服务端的frp已经安装好了

5、安装内网服务客户端frp

把下载好的frp_0.51.3_linux_amd64.tar.gz上传到内网服务器A,进行解压

复制代码
tar zxvf frp_0.51.3_linux_amd64.tar.gz

这里就要使用客户端的frpc和frpc.ini了

具体过程和服务端安装相同,只是启动命令不同,客户端启动命令如下

复制代码
/home/frp/frp_0.51.3/frpc -c /home/frp/frp_0.51.3/frpc.ini

or后台启动方式
/home/frp/frp_0.51.3/frpc -c /home/frp/frp_0.51.3/frpc.ini &

客户端安装systemd ,通过service启动和开机自动启动

创建 frps.service 文件并写入如下内容

复制代码
[Unit]
# 服务名称,可自定义
Description = frpc server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /home/frp/frp_0.51.3/frpc -c /home/frp/frp_0.51.3/frpc.ini

[Install]
WantedBy = multi-user.target

其他和服务端相同。

客户端frp启动成功后,会在服务端frp面板看到tcp连接信息,如图:

此时内网映射已经成功。

相关推荐
半梦半醒*1 小时前
nginx反向代理和负载均衡
linux·运维·nginx·centos·tomcat·负载均衡
喜欢你,还有大家1 小时前
集群的概述和分类和负载均衡集群
运维·负载均衡
liu****1 小时前
负载均衡式的在线OJ项目编写(六)
运维·c++·负载均衡·个人开发
swaveye90602 小时前
轻量服务器创建mysql,并配置远程连接
服务器·mysql·adb
Elastic 中国社区官方博客3 小时前
CI/CD 流水线与 agentic AI:如何创建自我纠正的 monorepos
大数据·运维·数据库·人工智能·搜索引擎·ci/cd·全文检索
A-刘晨阳3 小时前
Linux安装centos8及基础配置
linux·运维·服务器·操作系统·centos8
恒雨田3 小时前
解决 jenkins 用户 SSH 连接目标服务器时的 Permission denied 问题
运维·ssh·jenkins
迎風吹頭髮4 小时前
UNIX下C语言编程与实践14-UNIX 文件系统格式化:磁盘分区与文件系统创建原理
运维·c语言·unix
Saniffer_SH4 小时前
【高清视频】CXL 2.0 over Fibre演示和答疑 - 将内存拉到服务器10米之外
运维·服务器·网络·人工智能·驱动开发·计算机外设·硬件工程
紫钺-高山仰止4 小时前
【Pyzmq】python 跨进程线程通信 跨平台跨服务器通信
服务器·python·github