🎉 恭喜你发现了宝藏!

开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力

文章最后更新时间:2025-12-15 13:30:01

前言

很多朋友可能家里有NAS连的路由器,或者想把自己的电脑当作Web服务器或mysg或docker对外提供访问的需求但免费的一些软件例如:花生壳、神卓互联、快解析、NETAPP、NAT123等都不可以自定义域名目免费数量有限那么开源免费Frp技术你值得拥有。

我有一个阿里云的2核2G的轻量应用服务器,但是这个2核2G的服务器太垃圾了,几乎什么都跑不起来,不过网速还行,那我本地还有一个物理服务器是一个32核64G的,那我就可以把这台主机安装上Ubuntu系统当成一个服务器来使用,然后把网络代理到公网IP上,使用内网穿透这篇文章也就出现了。(本站就是用的这个方法)

图片[1] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

FRP简介

FRP官网:https://gofrp.org/zh-cn/

frp(Fast Reverse Proxy)是一个高性能的反向代理工具,它可以帮助用户在内网穿透的过程中实现对外网的访问。通过frp,用户可以将内网的服务暴露到外网,实现内网穿透,方便远程访问和管理。

frp采用客户端-服务端架构,用户需要在内网和外网分别部署frp客户端和frp服务端。客户端负责将内网的服务请求转发到服务端,服务端则将请求转发给真正的目标服务。这样,即使目标服务在内网中,用户也可以通过外网访问到它。

frp支持多种协议,包括TCP、UDP和HTTP等。用户可以根据自己的需求配置frp,实现不同协议的转发。同时,frp还支持自定义域名和端口映射,用户可以通过配置文件灵活地设置转发规则。
除了内网穿透功能,frp还提供了一些其他的特性,如流量加密、身份验证和流量限制等。这些特性可以增强网络安全性,保护用户的数据和服务。

frp是一个功能强大、易于使用的反向代理工具,它可以帮助用户实现内网穿透,方便远程访问和管理内网服务。无论是个人用户还是企业用户,都可以从frp的便利性和安全性中受益。

正文一[服务器端]

首先去frp官网FRP官网:https://gofrp.org/zh-cn/

1.再去点击起步,打开这个起步会看到下面这个图片

图片[2] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

2.点击安装

图片[3] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

3.点击下载FPR这个点击下载比较慢,因为是github有条件的可以挂梯子

图片[4] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

4.下载你需要的版本,我这里是在Linux上面安装所以下载的是(frp_0.51.3_linux_amd64.tar),我没有用最新版,因为0.51.3我比较熟悉,最新版我没用过,设置没什么区别,根据个人喜好来选择版本。

图片[5] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

5.下载好后解压这个压缩包你会看到下面这些。其中红色圈起来的是需要在客户端运行所需要的配置文件,黄色圈起来的是在服务器端运行所需要的配置文件,最后在相应的frp.ini后面都有一个带有下划线_full的这样的ini配置文件,里面是官方给的案例,里面有所有你可能会用到的参数

图片[6] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

6.查看full服务器端的内容,里面有很多我就不多解释了,我只说我们需要的几个参数

图片[7] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

7.服务器端需要配置的配置文件配置文件的右边的值都是可以随意配置的,注释里面都有相应的解释

[common]
#服务端的地址,也就是公网的IP,全写0的时候任何客户端都可以加入
bind_addr = 0.0.0.0
#服务端连接监听端口(从客户端想连上服务器端,就得连接这个端口)
bind_port = 7000
#用于防止任何人都能连接这个服务器,来设置的一层密码(需要客户端也对应,如果没有设置这个其他人可以随意连接)
#token = 123456
#监听http协议的端口
vhost_http_port = 80
#监听htts协议的端口
vhost_https_port = 443
#面板端口,账号密码(frp的可视化面板)(如果没有就没有可视化面板)
#服务端监控面板的端口
dashboard_port = 7500
#服务端监控面板的账号
dashboard_user = admin
#服务端监控面板的密码
dashboard_pwd = admin

8.在服务器根目录新建/frps文件夹并且设置权限为777,并且把两个文件都放进去

图片[8] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

9.把两个文件都放进去

图片[9] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

10.运行命令先CD进入frps这个文件夹再执行这个命令./frps -c ./frps.ini出现下面这些说明已经成功了

cd /
cd frps
./frps -c ./frps.ini
图片[10] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

正文二[客户端]

1.先配置frpc.ini,下面是配置内容(我就不说明了,前两行就是frp服务器地址和端口,后面的就是本地端口和远程开放端口)

[common]
server_addr = xxx.xxx.xxx.xxx        //服务器地址
server_port = 7000                   //服务器绑定端口
[ssh]                                //服务名称(自定义)
type = tcp                           //链路类型
local_ip = 127.0.0.1                 //本机ip
local_port = 22                      //本机端口
remote_port = 6022                   //映射端口(也就是你要连接的端口)
use_compression = true               //使用压缩
use_encryption = true                //使用加密

[宝塔面板]                            //以下为示例,有多少域名就加多少配置
type = tcp
local_ip = 127.0.0.1
local_port = 19573
remote_port = 9001
use_compression = true
use_encryption = true

[web] 
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = xxx.xxx.xxx.xxx    //使用IP地址访问web页
use_compression = true
use_encryption = true

[www.nuoso.cn]                      //服务名称(自定义)
type = http                         //链路类型(http型)
local_ip = 127.0.0.1                //本机ip
local_port = 80                     //本机端口
custom_domains = www.nuoso.cn       //自定义访问域名,多个使用,分割
use_compression = true              //使用压缩
use_encryption = true               //使用加密

[www.nuoso.cn_ssl] 
type = https                        //链路类型(https型)
local_ip = 127.0.0.1
local_port = 443                    //本机端口
custom_domains = www.nuoso.cn
use_compression = true
use_encryption = true

更多参数教程官网:https://gofrp.org/zh-cn/docs/

2.在本地物理服务器根目录新建文件夹/frpc

3.把这两个文件都上传到这个文件夹里面

图片[11] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

4.设置/frpc文件夹权限为777

图片[12] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

5.启动先cd进入这个文件夹然后输入启动命令./frpc -c ./frpc.ini

图片[13] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

6.先去公网IP那台服务器访问一下控制面板ip:7500,这就已经启动成功了

图片[14] - 开源Nat穿透工具实战 - 让本地虚拟机提供对外服务能力 - 诺守博客

7.最后一定要在云服务器后台的防火墙开放你设置的端口

后记

1.上面这个方法启动如果关闭窗口就断开了是不是很不方便,下面还有让后台处理的方式

2.首先下载systemd

# yum
yum install systemd
# apt
apt install systemd

3.分别创建fprc.servicefprs.service,内容分别是下面这个

[Unit]
# 服务名称,可自定义(frpc)
Description = frpc server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frpc的命令,需修改为您的frpc的安装路径
ExecStart = /frpc/frpc -c /frpc/frpc.ini
[Install]
WantedBy = multi-user.target
[Unit]
# 服务名称,可自定义(frps)
Description = frps server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /frps/frps -c /frps/frps.ini
[Install]
WantedBy = multi-user.target

4.两个文件都分别放置到两个服务器的/etc/systemd/system下面,设置文件权限为777

5.systemd命令

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
# 配置frps服务开机自启动
systemctl enable frps
# 配置frpc服务开机自启动
systemctl enable frpc
# 重新加载
systemctl daemon-reload

6.通过上面您就能很方便的进行部署服务器了

7.如果我的博客帮助到了您,您可以到我的网站https://www.nuoso.cn/或者微信公众号搜索nuosokefu,在那里可以找到我,里面也有更多的优秀文章

© 版权声明
THE END
点赞8赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容