FRP内网穿透_花生壳内网穿透6元

FRP内网穿透_花生壳内网穿透6元在Web应用上线前都会在内网进行测试,而有些功能是只有在公网上才能做测试的,比如为APP提供的接口等等。所以经常需要在正式上线之前将内网的服务器映射到公网上去。也就是赋予内网上服务器一个域名,开放几个端口。一般来说都使用内网穿透工具完成这个操作,比如在公网上购置一台服务器,不需要配置很高,只要流量够用就行。然后在公网服务器上配置穿透工具的服务端,比如ngrockc或者frp,然后在能接通公网的内网…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在Web应用上线前都会在内网进行测试,而有些功能是只有在公网上才能做测试的,比如为APP提供的接口等等。所以经常需要在正式上线之前将内网的服务器映射到公网上去。也就是赋予内网上服务器一个域名,开放几个端口。

一般来说都使用内网穿透工具完成这个操作,比如在公网上购置一台服务器,不需要配置很高,只要流量够用就行。然后在公网服务器上配置穿透工具的服务端,比如ngrockc或者frp,然后在能接通公网的内网服务器上配置客户端,这样就把内网中的一个端口映射至了公网,并且有了自己的域名。极大方便了Web应用的测试工作。

下面以frp v0.20.0为例介绍如何实现内网穿透。

首先内网穿透分为多种,主要包括 TCP,HTTP,UDP。

其中TCP主要用来映射SSH端口,Socks通信端口,没有域名的HTTP服务器端口等。

HTTP主要用来映射有域名的HTTP服务器

UDP主要用来映射DNS查询端口。

对于frp来说,不管服务器是Linux还是Windows,还是其他CPU架构的路由器,都不需要自己编译,官网已经编译好了,下载地址:https://github.com/fatedier/frp/releases

首先介绍一下TCP,也是用的最多的一种,可以把内网主机的22号端口映射到公网上去访问。

下载完后,分为frps,服务器端,frpc客户端。其中服务器端应该放置在公网服务器上,让公网上的测试机访问,而客户端放在内网服务器上,用于将本地的端口映射到公网服务器上。

一、TCP协议端口映射


下面以映射SSH端口为例介绍配置文件的写法。

首先是服务端配置文件frps.ini,该版本中有两个配置文件frps.ini和frps_full.ini,frps_full.ini给出了配置每种项的例子,把对应例子粘贴到frps.ini,修改相应的配置即可

 [common]

bind_addr = 0.0.0.0
bind_port = 7000
dashboard_port = 7500
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

其中

bind_addr是frps的监听地址,如果要在所有网卡上进行监听就填0.0.0.0,否则就填你要监听的网卡的地址

bind_port是frp服务端和frp客户端交互数据所使用的端口,不对外开放,只做服务端和客户端数据交互使用。

dashboard_port是frps监控页面的访问端口,frp服务端自带一个实时监控Web页面,可以观察流量和连接状况。如下

FRP内网穿透_花生壳内网穿透6元

dashboard_user 和dashboard_pwd是登录上面Web页面的用户名密码,可以不设置。 

此时要注意,在0.20.0版本之前,是服务端决定客户端的某个端口映射到服务端之后是哪个端口,而0.20.0版本上,是由客户端自己决定自己的端口映射到服务端服务器上之后是哪个端口。0.20.0版本上客户端的自由度更高了一些。

下面是旧版的服务端配置文件,旧版和新版很大的一点区别就是旧版的服务端配置包含了客户端的配置,客户端的配置要与服务器根据端口和名字一一对应,这样如果修改了客户端那么服务端的配置文件也需要进行修改。而新版0.20.0就不需要修改服务端的配置文件,服务端可以保持长开,服务端的配置文件没有记录客户端的端口也不记录客户端的名字,只要客户端有需要向服务端发起请求,服务端就会自动开启客户端需要的端口。十分方便。但是安全性可能要差一些,所以可以根据自己的需要选择新版或是旧版。

[common]
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_port = 7500
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
[ssh] #旧版上,服务端也需要配置客户端的内容,规定名字和端口,必须和客户端一致。
type = tcp
auth_token = 123
bind_addr = 0.0.0.0
listen_port = 6000 #第三方SSH访问端口

也就是只加了一个listen_port = 6000,这一行的意思就是公网的其他人只要访问服务端:6000就相当于访问了内网服务器:22端口

下面再看看客户端frpc.ini的写法

[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

其中,[common]下面的内容要与服务端一致,server_addr是frp服务端的地址

[ssh]是某个端口映射的名字,可以随便起

type是当前映射的端口的类型,可以是tcp udp http。

auth_token是客户端与服务端约定好的沟通密码,可以不设置,但是如果服务端设置了auth_token那么客户端也必须设置的一样的字符。

server_port和auth_token应该与上面服务端配置文件写的一样

[ssh]这个名字也应该与服务端配置文件上面写的名字保持一致

type要一致

local_ip是要将哪个端口映射到服务器上去,如果是本机一般填写127.0.0.1,也可以是客户端能访问到的其他主机

local_port是将主机上的哪一个端口进行映射,如果是SSH登录一般是22,Web服务器可能为80或者8080

remote_port这个是0.13.0版本之后新加入的字段,而且是必填的.就是把上面的端口映射到服务器上之后,服务器的端口号。比如我上面填写6000的话,那么公网上其他客户端应该使用ssh root@服务端的ip -p 6000来登录内网的主机

在0.13.0之前的版本,应该不写remote_port这个选项,而让服务端来决定开放哪个端口。

然后在服务端和客户端分别启动frps和frpc

frps -c ./frps.ini
frpc -c ./frpc.ini

如此一来,如果我们的公网服务器是12.34.56.78,那么我们只需ssh root@12.34.56.78 -p 6000 就可以控制内网的服务器了。当然这种方法只要修改一下frpc.ini上的端口就可以

改成Web服务器的端口,就可以通过公网IP访问内网的Web服务器了。

二、HTTP 带域名Web服务端口映射


上面那种情况是基于所有TCP协议的,而如果你的Web服务器是带有域名的,那么推荐使用HTTP协议,服务端frps.ini如下,与tcp协议差不多,只是多一个vhost_http_port属性,用来控制映射后的端口

[common]
bind_addr = x.x.x.x
bind_port = 7000 #frp服务端与frp客户端通信端口
#服务端开放端口80或443供第三方访问
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 7500
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

客户端frpc.ini写法

[common]
server_addr = x.x.x.x
server_port = 7000
[web]
type = http
local_ip = 127.0.0.1
local_port = 8088
custom_domains = frp.test.net

其中,8088是本地Web服务器开放的端口,绑定的域名为frp.test.net

下面是旧版服务器的frps.ini,同TCP配置的一样,服务端需要写上客户端的内容。旧版有一个很大的不同点就是域名写在了服务端,而新版是把域名卸载客户端,所以相比较而言,新版维护起来更加方便

[common]
bind_addr = 0.0.0.0
bind_port = 7000 #frp服务端与frp客户端通信端口
#服务端开放端口80或443供第三方访问
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 7500 #后台监控页面访问端口
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
[web]
type = http #开放80端口
custom_domains = frp.test.net #需要改成你的域名
auth_token = 123 #密码

旧版客户端的内容,相关参数要与旧版服务端的配置文件一致才行,相对于新版的客户端配置文件,最大的区别就是不写域名

[common]
server_addr = x.x.x.x #服务器IP地址
server_port = 7000 #服务器数据通信端口
auth_token = 123 #密码
[web]
type = http
local_ip = 127.0.0.1 #被映射端口的主机IP,一般需要换成宿主机的IP
local_port = 8088 #被映射的端口

在这里要注意,如果type=http那么你必须要有一个域名,并通过域名来访问,如果暂时申请不到公网的域名,可以修改计算机的host文件来手动配置一个域名。不然如果使用ip而非域名访问是访问不到的,使用ip入(http://11.22.33.44:80)会报如下的错误

FRP内网穿透_花生壳内网穿透6元

而使用域名(比如http://frp.test.net)就可以正常访问

三、DNS服务器端口映射

最后一种情况是将内网DNS服务器映射到公网上

服务端frps.ini的配置文件与tcp,http一样,随便用谁的都行,反正新版的服务端是不绑定客户端的

客户端frpc.ini如下

[common]
server_addr = x.x.x.x
server_port = 7000
[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 53

这样,就把本地的DNS服务器映射到了公网上了。

旧版frps.ini的写法如下

[common]
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_port = 7500
#dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
[dns]
type = udp
listen_port = 53
auth_token = 123

旧版frpc.ini的写法如下,最大的区别就是旧版上服务端开放的端口由服务端listen_port指定,而新版由客户端的remote_port指定

[common]
server_addr = x.x.x.x #换成你的frp服务端IP地址
server_port = 7000
auth_token = 123
[dns]
type = udp
local_ip = 8.8.8.8 #由frp客户端将请求转发至该DNS服务器
local_port = 53

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194357.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月7日 下午2:22
下一篇 2025年11月7日 下午3:01


相关推荐

  • fork函数简介_fork()&&fork()

    fork函数简介_fork()&&fork()包括: fork函数简介fork函数的两次返回和父子进程的执行顺序简介fork()子进程与父进程之间的文件描述符问题  [cpp] view plaincopyprint? 1  1 #include                                                                                  

    2025年6月1日
    8
  • nanobanana教程:3D地标微缩场景AI生成指南|3D Landmark Diorama风格创作

    nanobanana教程:3D地标微缩场景AI生成指南|3D Landmark Diorama风格创作

    2026年3月15日
    2
  • 卡方检验spss步骤_数据分析–学统计&SPSS操作

    卡方检验spss步骤_数据分析–学统计&SPSS操作笔记内容来源:拉勾教育数据分析实战训练营我是一个在教育留学行业8年的老兵,受疫情的影响留学行业受挫严重,让我也不得不积极寻找新的职业出路。虽然我本身是留学行业,但对数据分析一直有浓厚的兴趣,日常工作中也会做一些数据的复盘分析项目。加上我在留学行业对于各专业的通透了解,自2016年起,在各国新兴的专业–商业分析、数据科学都是基于大数据分析的专业,受到留学生的火爆欢迎,可见各行各业对于数据分析的人才…

    2022年5月13日
    156
  • sigaction 使用

    sigaction 使用函数sigaction原型:intsigaction(intsigno,conststructsigaction*restrictact,structsigaction*restrictoact);@signo信号编号@act要注册的信号动作@oact原信号动作参数structsigactionstructsigaction{

    2022年5月26日
    53
  • Xmind软件 2020最新安装教程讲解

    Xmind软件 2020最新安装教程讲解Xmind2020 最新安装教程 1 首先需要下载 Xmind 软件 百度网盘链接附上 2 安装步骤直接就是双击下载好的软件安装即可 3 安装成功后找到 xmind 安装目录下的 resource 目录替换 app asar 文件 4 替换成功后打开软件查看是否还有试用版字样 Xmind2020 版本激活成功教程版 亲测真实有效 我看了许多软件大部分要钱 要不然就是下载一堆垃圾软件 根本就解决不了问题 1 首先需要下载 Xmind 软件 百度网盘链接附上 百度网盘链接链接 https pan baidu com s 1

    2026年3月17日
    2
  • 叉积和点积

    叉积和点积向量是由 n 个实数组成的一个 n 行 1 列 n 1 或一个 1 行 n 列 1 n 的有序数组 向量的点乘 也叫向量的内积 数量积 对两个向量执行点乘运算 就是对这两个向量对应位一一相乘之后求和的操作 点乘的结果是一个标量 点乘公式对于向量 a 和向量 b nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp a 和 b 的点积公式为

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号