当前所在位置: 首页 > 域名交易

阿里云服务器ECS利用反向代理FRP内网穿透从零开始:树莓派_ngrok_内网穿透

2021-10-11 本站作者 【 字体:

阿里云服务器ECS利用反向代理FRP内网穿透应用背景

因为家庭宽带,网络运营商并不提供固定IP业务。

有时候在外地要访问家里的电脑或者网络硬盘,没有固定IP怎么办呢?这时候就面临内网穿透需求了。

内网穿透一般内网穿透有哪些解决方法呢?一般有反向代理、动态域名等等。前者用的多有frp,后者有花生壳等。frp,即本文所讲的。frp 是一个可用于内网穿透的高性能的反向代理应用。其官网链接为:https://github.com/fatedier/frpsunny_ngrok,国外反向代理。花生壳,动态域名,通过解析域名和对应的IP地址。这个国产商业软件,要实名制,绝大多数产品是要付费的。反向代理反向代理解释可以查看 https://www.zhihu.com/question/24723688frp简介

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议。其官网链接为:https://github.com/fatedier/frp

没有公网 IP 的树莓派玩家如果想在公司或其他地方访问到家里的树莓派,需要借助 内网穿透 技术,ngrok 就是其中一种比较流行的方案。

ngrok 是一个开源的基于反向代理的内网穿透软件,诞生至今已经 7 年,在国外有官网和服务器,提供免费的穿透服务。

安装 ngrok

首先,前往 ngrok 官网 https://ngrok.com/download,下载客户端。如果是树莓派 4B,可以下载 Linux(ARM64) 版本,如果是树莓派 3B 及以前的型号,可以下载 Linux(ARM) 版本。

从零开始:树莓派_ngrok_内网穿透

如果你是用自己的电脑下载的 ngrok,则要把下载好的 ngrok zip 文件上传到树莓派桌面。上传方法可以参考 教你用树莓派远程桌面和电脑互传文件 - 硬核树莓派。

frp分为服务器端frps、客户端frpc。

准备条件带公网IP的VPS服务器,假设IP地址是111.111.111.111。如果没有VPS服务器具体可以参考阿里云域名注册与备案、服务器ECS购买与登录内网PC A。外网PC B。VPS服务器端搭设下载frps到服务器这里下载0.16.0版本,相对稳定一点

wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz解压缩

tar -zxvf frp_0.16.0_linux_amd64.tar.gz进入解压缩出来的文件夹

cd frp_0.16.0_linux_amd64.tar.gz修改服务器配置文件(frps.ini):

vi frps.ini

按insert键,进入编辑模式,内容修改为如下:

或者直接在树莓派上执行下载指令:

[common] #与客户端绑定的进行通信的端口 bind_port = 7000 #http的访问端口 vhost_http_port = 88 #https的访问端口(如果需要的话) vhost_https_port = 8088

按Esc键,退出编辑模式,再按:wq保存退出。

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm64.tgz

接着,解压 ngrok zip 包:

启动frps服务端。 使用screen让frps在后台运行,这样即使关掉了ssh,frp仍然在后台运行中 使用screen命令创建一个会话:

screen -dmS frp

进入这个会话:

screen -r frp

最后启动frp命令:

unzip ngrok-stable-linux-arm64.tgz

解压完成后,当前目录下会多出一个 ngrok 文件。这个就是 ngrok 的可执行程序了。

从零开始:树莓派_ngrok_内网穿透启动 ngrok 内网穿透

ngrok 执行反向代理的时候会同时启动一个 4040 端口的监控服务,用于监控网络连接等情况。我们这里就先内网穿透到树莓派本地的 4040 端口,让我们能从外网打开 ngrok 监控页面。

首先,执行 ngrok 代理到本地的 4040 端口:

./frps -c ./frps.ini &停止运行frp的方法:杀掉frps进程即可。

使用ps -ef命令,查看所有进程(ps Process Status缩写: -e 所有进程every ,-f full全格式的输出):

./ngrok http 4040

指令执行成功后,ngrok 会在屏幕上打印反向代理出来的外网地址:

从零开始:树莓派_ngrok_内网穿透

接着,用浏览器打开上面 https://cf0eba4d.ngrok.io/ 这个地址,就能看到 ngrok 的监控页面。

从零开始:树莓派_ngrok_内网穿透

如果你的树莓派还运行着其他的服务,都可以用类似的方法代理出来。比如:

ps -ef | grep frps    

找到frps、screen的进程id,使用kill命令:

./ngrok http 80 代理 web 服务./ngrok tcp 22 代理 ssh 服务自定义外网域名

默认情况下,ngrok 每次启动都会生成随机的外网域名,临时用一下可以。但如果你想有稳定的域名,就需要上 ngrok 注册账户。

kill -9 进程id

或者直接用killall进程名结束

killall -i 进程名内网PC 客户端搭设(windows版本)下载客户端的frp: 在这里 https://github.com/fatedier/frp/releases 找到对应版本的frp。 因为在服务器端是使用了0.16.0版本,所以需要找到对应版本下载。解压下载好的压缩包编辑frpc.ini文件 [common]
server_addr = 111.111.111.111
server_port = 7000

[RemoteDesktop]
#windows下使用远程桌面
type = tcp
local_addr = 127.0.0.1
local_port = 3389
remote_port = 7002

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000启动frp客户端frpc:找到frpc.exe对应文件夹,在其地址栏输入cmd,则进入以该文件夹为路径的cmd命令行。在命令行下输入以下命令即可启动。

frpc -c frpc.ini内网PC 客户端搭设(Linux版本)编辑frpc.ini文件

screen -dmS frp启动frpc客户端。使用screen让frpc在后台运行,这样即使关掉了ssh,frp仍然在后台运行中 使用screen命令创建一个会话:

进入这个会话:

screen -r frp

最后启动frp命令:

./frpc -c ./frpc.ini &

./frpc -c ./frpc.ini & 停止运行frp的方法:杀掉frpc进程即可。使用ps -ef命令,查看所有进程(ps Process Status缩写: -e 所有进程every ,-f full全格式的输出):ps -ef | grep frpc 找到frpc、screen的进程id,使用kill命令:kill -9 进程id 或者直接用killall进程名结束killall -i 进程名外网电脑Linux SSH登录内网

外网电脑ssh登录内网PC,输入命令为

首先,登录 ngrok 官网(https://dashboard.ngrok.com/login)注册账户。

ssh -p 6002 root@111.111.111.111

其中 -p为端口号,登录用户名为root。

假若已经保存了秘钥文件id_rsa,可以用-i 指定秘钥文件。

ssh -p 6002 root@111.111.111.111 -i id_rsa外网电脑windows下远程桌面外网PC在命令行下输入mstsc,启动远程桌面在远程桌面的计算机输入框中,输入VPS对应ip及客户端frpc.ini中对应的remote_port。在这里则是111.111.111.111:7002阿里云服务器ECS利用反向代理FRP内网穿透FAQ

frp启动报错“[W] [control.go:113] login to server failed: EOF”

接着,复制 ngrok 的账户设置指令,并在树莓派上执行。这个指令只需要执行一次即可。

从零开始:树莓派_ngrok_内网穿透从零开始:树莓派_ngrok_内网穿透

然后,加 -subdomain 参数指定子域名启动 ngrok:

./ngrok http -subdomain=hardcore-rpi 4040从零开始:树莓派_ngrok_内网穿透

如果有自己的域名的话,还可以配置 CNAME 到 ngrok 指定的域名,用自己的域名做反向代理。具体操作看官方文档:https://ngrok.com/docs#http-custom-domains

必须要注意的是,免费账户不能“保留”自己的域名。也就是说,-subdomain 指定的子域名可能和别人冲突而导致用不了。所以要么升级 ngrok 账户保留自己的域名,要么指定一个较长的不容易冲突的子域名。

国内 ngrok 替代服务

由于众所周知的原因,ngrok.io 这个域名其实不太稳定,偶尔会连不上,所以国内一些玩家或服务商提供了 大陆版 ngrok 替代服务,比如:

原因: 客户端和服务器端frp版本不一致。是因为最开始装的这个frpc版本是0.27.0,而之前的frps版本是0.16.0,于是就降了一下frpc的版本,解决了问题:

作者的其他回答:

阿里云服务器快速建网站_安装BT宝塔面板和wordpress、

阿里云域名注册与备案、服务器ECS购买与登录、

NATAPP基于ngrok的国内高速内网穿透服务Ngrok国内免费服务器-小米球ngrok参考资料树莓派内网穿透方法大全 - 硬核树莓派inconshreveable/ngrok: Introspected tunnels to localhostngrok - secure introspectable tunnels to localhost

七牛图床添加阿里云域名、

markdown多平台发布及七牛图床使用

阅读全文
id_1广告位-300*300
相关推荐

简述域名解析的过程域名注册流程是什么?

简述域名解析的过程域名注册流程是什么?
你好,域名注册流程有以下步骤:1、首先在百度中搜索“域名注册”,可以看到很多网站...

请问如何申请域名?求域名转让的流程?

请问如何申请域名?求域名转让的流程?
感谢邀请,这也是三分最在行的事情之一。目前手头也有部分域名在手,当做投资了,目前...

[电脑技巧] 什么是IP地址、网关、DNS、子网掩码、MAC地址?godaddy平台域名转移好不好?转入流程是怎样的?

[电脑技巧] 什么是IP地址、网关、DNS、子网掩码、MAC地址?godaddy平台域名转移好不好?转入流程是怎样的?
我觉得狗爹域名转移还是蛮好的,比国内的注册商有很多优势。比如国内多数的注册商对于...

从计算机域名到IP地址翻译的过程称为什么。域名是什么意思啊?

从计算机域名到IP地址翻译的过程称为什么。域名是什么意思啊?
域名,简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机...

目前比较快的DNS,有几个?域名地址、IP地址、物理地址的作用和相互之间的关系是什么?

目前比较快的DNS,有几个?域名地址、IP地址、物理地址的作用和相互之间的关系是什么?
通过一些解释帮你进行认识,希望能帮到你 域名地址Domain name addr...

域名怎么表示?一级域名和二级域名的区别是什么?作用怎样?

域名怎么表示?一级域名和二级域名的区别是什么?作用怎样?
域名地址也是HTTP是超文本转移协议,是客户端浏览器或其他程序与Web服务器之间...

无线中DNS改为114.114.114.114真的能提高网速吗?如何提高网速?为什么域名要分中文的和英文的?

无线中DNS改为114.114.114.114真的能提高网速吗?如何提高网速?为什么域名要分中文的和英文的?
DNS改为114.114.114.114不一定能提高网速,把DNS设为“114....

域名注册商转移步骤是怎样的?如何域名注册转移?路由器虚拟服务器dmz主机图文教程,设置转发局域网ip端口映射

域名注册商转移步骤是怎样的?如何域名注册转移?路由器虚拟服务器dmz主机图文教程,设置转发局域网ip端口映射
域名注册商转移步骤是怎样的?如何域名注册转移?很多小伙伴们可能在多个域名注册平台...

域名解析、IP指向、URL转发.所指的是什么意思?如何作域名URL转发?

域名解析、IP指向、URL转发.所指的是什么意思?如何作域名URL转发?
我们知道域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务...

国内有哪些比较快速稳定的缩短网址的服务呢?thinkphp怎么缩短网址

国内有哪些比较快速稳定的缩短网址的服务呢?thinkphp怎么缩短网址
推荐使用 缩吧短址服务,主页地址: http://s8.hk你看下这里就会明白了...