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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JavaWeb之Request对象和Response对象详解

    JavaWeb之Request对象和Response对象详解一:概述Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象一、Response对象   1.Resonse的继承结构:         ServletResponse–HttpServletResponse   2.Response代表响应,于是响应消息中的状态码、响应头、实体

  • Spring框架介绍及使用

    Spring框架介绍及使用Spring框架—控制反转(IOC)1Spring框架概述1.1什么是Spring1.2Spring的优点1.3Spring的体系结构2入门案例:(IoC)2.1导入jar包2.2目标类2.3配置文件2.4测试3入门案例:DI3.1目标类3.2dao3.3service3.4配置文件3.5测试4依赖注入…

  • Typora ——一款Markdown编辑器入门教程

    Typora ——一款Markdown编辑器入门教程Typora——Markdown编辑器入门教程附上目录:文章目录Typora——Markdown编辑器入门教程一.序二.前言那么,什么是富文本格式?什么是Markdown?**Markdown编辑器和常见的富文本编辑器有什么区别?**二.Typora简介什么是Typora?当然,typora的魅力不止于此:三.Typora的安装四.配合扩展体验更佳1.配合Pandoc扩展程序实现导出2…

  • ebpf_ebpf需要修改内核吗

    ebpf_ebpf需要修改内核吗eBPF简史BPFBPF的全称是BerkeleyPacketFilter,顾名思义,这是一个用于过滤(filter)网络报文(packet)的架构。过滤(Filter):根据外界输入的规则过滤报文;复制(Copy):将符合条件的报文由内核空间复制到用户空间;?packet报文buffer百度百科在计算机领域,缓冲器指的是缓冲寄存器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,

  • php开发微信公众号步骤_PHP接口

    php开发微信公众号步骤_PHP接口最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式那么URL怎么填写呢?网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,

  • PDB文件:每个开发人员都必须知道的

    PDB文件:每个开发人员都必须知道的PDBFiles:WhatEveryDeveloperMustKnowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05

发表回复

您的电子邮箱地址不会被公开。

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