免费 内网穿透 FRP 简单 多端口映射 公网

前提,需要有一台公网的机器,和自用的内网机器。

作者目前的情况,花了首充在某里巴巴购了个低配置的公网服务器,学习某依微服务架构时,由于要安装启动的中间件,管理工具和微服务有点多,服务器配置跟不上,所以使用本地安装虚拟机来部署部分服务然后映射到公网上。使用FRP来做实现内网穿透和端口映射。

FRP(Fast Reverse Proxy)是一种高性能的反向代理应用,主要用于穿透内网和实现端口映射。它允许你将局域网中的服务暴露到公网,从而能够在公网中访问这些服务。

FRP 主要由两部分组成:

  • FRPC 客户端:运行在内网机器上,接收来自公网的访问请求,并将请求转发给内网服务。
  • FRPS 服务端:部署在具有公网 IP 的机器上,暴露服务的公网入口,接收公网访问请求,通过加密隧道转发到 FRPC。

下载并安装FRP

源码地址:https://github.com/fatedier/frp/releases

文档地址:https://gofrp.org

选择合适的版本下载,作者使用的v0.61.0版本

# 安装路径
cd /usr/local
# 新建文件夹
mkdir frp
cd frp
# 下载
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
# 解压文件
tar -zxvf frp_0.61.0_linux_amd64.tar.gz
cd frp_0.61.0_linux_amd64/

# 配置frps,公网机器,修改frps.toml,指定 HTTP 请求的监听端口为 80;auth.token可以任意值,frps和frpc相同即可
vim frps.toml
--------------------------------------------frps.toml start
bindPort = 6699
vhostHTTPPort = 80
# token配置和frpc一致,相同才可以建立连接映射,不配置也可以,不过公网ip暴露后可能会连接到其他的映射
auth.token = "65425e0fb7c14daf81b585f34fbf90aa"

# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。 下述webServer配置是打开服务端可视化控制台,可以省略
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "admin"
webServer.password = "admin"
--------------------------------------------frps.toml end

# 配置frpc,内网机器,修改frpc.toml
vim frpc.toml
--------------------------------------------frpc.toml start
# serverAddr 配置你的公网ip
serverAddr = "****"
# serverPort 随意,与frps需要配置成一致的
serverPort = 6699
auth.token = "65425e0fb7c14daf81b585f34fbf90aa"

# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。 下述webServer配置是打开客户端可视化控制台,可以省略
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"

# 配置规则详见文档,如下是我使用到的配置
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6622

[[proxies]]
name = "redis"
type = "tcp"
localIP = "127.0.0.1"
localPort = 6379
remotePort = 6379

[[proxies]]
name = "nacos"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8848
remotePort = 8848

[[proxies]]
name = "nacos-grpc"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9848
remotePort = 9848

[[proxies]]
name = "nacos-metrics"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9849
remotePort = 9849

[[proxies]]
name = "sentinel-dashboard"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8718
remotePort = 8718

[[proxies]]
name = "mysql"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 3306

[[proxies]]
name = "web"
type = "http"
localPort = 80
# 可以配置想要的域名
customDomains = ["***.com"]

[[proxies]]
name = "admin_ui"
type = "tcp"
localPort = 7400
remotePort = 7400
--------------------------------------------frpc.toml end

配置服务开机自启

# FRPS 公网服务端,新建服务
vim /etc/systemd/system/frps.service
-------------------------------frps.service start
[Unit]
# 服务名称,可自定义
Description = frps server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/local/frp/frp_0.61.0_linux_amd64/frps -c /usr/local/frp/frp_0.61.0_linux_amd64/frps.toml

[Install]
WantedBy = multi-user.target
-------------------------------frps.service end

# 重载服务
systemctl daemon-reload
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
# 开机启动
sudo systemctl enable frps




# FRPS 内网服务端,新建服务
vim /etc/systemd/system/frpc.service
-------------------------------frpc.service start
[Unit]
# 服务名称,可自定义
Description = frpc server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/local/frp/frp_0.61.0_linux_amd64/frpc -c /usr/local/frp/frp_0.61.0_linux_amd64/frpc.toml

[Install]
WantedBy = multi-user.target
-------------------------------frpc.service end

# 重载服务
systemctl daemon-reload
# 启动frp
sudo systemctl start frpc
# 停止frp
sudo systemctl stop frpc
# 重启frp
sudo systemctl restart frpc
# 查看frp状态
sudo systemctl status frpc
# 开机启动
sudo systemctl enable frpc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值