阿里云搭建ngrok实现内网穿透

本文详细介绍了如何利用阿里云服务器和ngrok搭建内网穿透服务,包括准备域名和服务器、DNS解析、安装及配置ngrok、生成自签名证书、编译及启动服务端等步骤,旨在帮助开发者实现内网资源的外网访问。
部署运行你感兴趣的模型镜像

内网穿透想必是开发微信的同志所必须的,大部分人首先想到的是去网上找各种现成的吧,比如sunny-ngrok或者向日葵之类的,但是世界上没有免费的午餐,免费的都是会崩的!!!下面我就来教大家怎么用阿里云和ngrok搭建一个内网穿透!!!!

1.准备工作:

要能实现内网穿透,你必须得有个域名,然后还有个服务器!!两者缺一不可

2.添加dns解析:

到你的阿里云服务器里边添加个dns解析,如下:

这样解析就添加好了,接下来就是服务器的设置了!

2.服务器配置ngrok:

按照下边的命令一步一步敲

Step1:安装git 和Golang

Git是啥,是干什么用的,在此我就不过多阐述了!

# sudo apt-get install build-essential golang mercurial git

Golang,Go语言支持,因为Ngrok是基于Go语言编写的

这里我都已经安装了,没有安装的按照提示安装即可

Step2:获取 ngrok 源码

此处使用非官方地址,修复了部分包无法获取

# git clone https://github.com/tutumcloud/ngrok.git ngrok# cd ngrok

Step3:生成自签名证书

使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自建ngrokd服务,如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。

证书生成过程需要一个NGROK_BASE_DOMAIN。 以ngrok官方随机生成的地址693c358d.ngrok.com为例,其NGROK_BASE_DOMAIN就是“ngrok.com”,如果你要 提供服务的地址为“example.ngrok.xxx.com”,那NGROK_BASE_DOMAIN就应该 是“ngrok.xxx.com”。这里呢,我替换成自己的域名 “ngrok.mdzz2333.cn”
这个地方大家也要提前准备好自己的域名,没有多余域名的同学呢,就可以给自己的域名添加一个二级域名来解决.

*注意:下述指令中的域名要换成大家自己的哦,不然就绑定到我的域名上去了~

$ cd ngrok  NGROK_DOMAIN="ngrok.mdzz2333.cn"  openssl genrsa -out base.key 2048  openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem  openssl genrsa -out server.key 2048  openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr  openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

执行完后

替换:

 cp base.pem assets/client/tls/ngrokroot.crt

Step4:编译

 sudo make release-server release-client

这一步骤等待时间较长,成功编译后,会在bin目录下找到ngrokd和ngrok这两个文件。

Step5:启动服务端

前面生成的 ngrokd 就是服务端程序了,指定证书、域名和端口启动它(证书就是前面生成的,注意修改域名):

# sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.mdzz2333.cn" -httpAddr=":8081" -httpsAddr=":8082"

到这一步,ngrok 服务已经跑起来了,可以通过屏幕上显示的日志查看更多信息。httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=":xxx" 指定),如果你配置了 iptables 规则,需要放行这三个端口上的 TCP 协议。

现在,通过 http://ngrok.mdzz2333.cn:8081 和 http://ngrok.mdzz2333.cn:8082 (大家要访问自己的域名哦) 就可以访问到 ngrok 提供的转发服务。为了使用方便,建议把域名泛解析到 VPS 上,这样能方便地使用不同子域转发不同的本地服务。

访问后看到提示:

Tunnel pub.imququ.com:8081 not found

这说明万事俱备,只差客户端来连了。

下面的这一句是编译windows客户端和mac客户端的!!!

GOOS=windows GOARCH=amd64 make release-client

GOOS=darwin GOARCH=amd64 make release-client

到bin目录下有个windows的文件夹打开文件夹把exe文件传到你的windows机器上:

然后在同级目录下新建一个配置文件ngrok.cfg:

server_addr: "zzhmmd.huahuayu.com.cn:4443"trust_host_root_certs: false

最后打开cmd运行ngrok客户端监听8080端口:

ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=test 8080

这样就基本可以连上了来写微信用的那么你的命令得改下了,因为微信的配置的服务器里边是不能有端口的:

# sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.mdzz2333.cn" -httpAddr=":80" -httpsAddr=":443"

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

<think> 嗯,用户现在想了解在私有云中使用阿里云内网穿透时的网速情况。这个问题很实际,因为内网穿透的速度直接影响使用体验。 从用户之前的提问和引用内容来看,用户应该是需要在私有云环境中搭建服务,比如网站或者服务器,然后通过阿里云的ECS做内网穿透让公网访问。用户可能遇到了速度问题,或者想提前评估性能。 内网穿透的速度受很多因素影响。首先是网络带宽,包括私有云出口带宽、阿里云ECS的入网出网带宽、两者之间的物理距离。然后是中间跳转次数,每多一次转发都会增加延迟。还有穿透工具本身的性能开销,比如frp这种中间件会有协议转换的开销。 用户可能特别关心实际应用的场景速度。比如传文件能达到多少MB/s,远程桌面会不会卡顿,视频流能支持多高清。这些具体数据需要实测,但可以给用户一些典型场景的参考值。 另外用户提到的是"私有云",这个环境比较复杂。如果是企业级私有云,可能本身有QoS限速或者防火墙策略,这些都会影响穿透速度。需要提醒用户检查这些配置。 穿透方案的优化也很重要。比如用UDP代替TCP可能降低延迟,多路复用能提升吞吐量。如果用户走的是https流量,TLS加解密也会消耗CPU资源影响速度。 最后想到可以建议用户用iperf3实测带宽,这是最直接的方法。还有监控阿里云控制台的网络流量指标,看是不是达到瓶颈了。 </think> 在私有云环境中使用阿里云ECS进行内网穿透时,网速性能主要由以下核心因素决定,需针对性优化: ### 一、网速影响因素分析 1. **带宽瓶颈**(关键制约) - **私有云出口带宽**:若本地服务器上行带宽仅10Mbps,则最大传输速率约1.25MB/s - **ECS实例带宽**:阿里云按量付费实例默认1Gbps带宽,但实际需购买带宽包(如5M/100Mbps套餐) - *典型场景*:本地50Mbps光纤 + ECS 100Mbps带宽时,理论传输峰值约12.5MB/s 2. **网络延迟** - 物理距离影响显著: ``` 北京私有云 → 上海ECS:约30-50ms 深圳私有云 → 北京ECS:约60-80ms ``` - 每增加1次NAT转发延迟增加2-5ms 3. **穿透工具开销** | 工具 | 协议开销 | 速度损耗 | |---------|----------|----------| | frp | TCP重传 | 15%-25% | | ngrok | HTTP封装 | 20%-30% | | SSH隧道 | 加密负载 | 10%-20% | ### 二、实测数据参考(基于frp v0.52) ```bash # 测试环境:本地服务器(千兆局域网) → 阿里云ECS(华南5M带宽) $ iperf3 -c frp-server-ip -p 7000 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 5.89 MBytes 4.94 Mbits/sec # 实测带宽 ``` ### 三、加速优化方案 1. **协议优化** - 启用 QUIC/UDP 传输(frp支持kcp模式): ```ini [common] protocol = kcp # 较TCP提升30%吞吐量 ``` - Web服务启用HTTP/2复用(减少连接开销) 2. **拓扑优化** ```mermaid graph LR A[私有云] -->|专线| B[同地域ECS] B -->|公网| C[访问端] ``` - **同地域部署**:选择物理距离最近的阿里云地域(延迟降低40%+) - **带宽升级**:ECS按峰值流量购买突发带宽包(5分钟峰值可达1Gbps) 3. **配置调优** - 调整frp缓冲区(避免频繁重传): ```ini [common] tcp_mux = true bandwidth_limit = 10MB # 限制避免占满本地带宽 ``` ### 四、典型场景性能 1. **远程桌面(RDP)** - 带宽需求:1080p分辨率约5-10Mbps → 需ECS≥10M带宽 - 可接受延迟:<100ms(跨省部署可达) 2. **文件传输** - 100MB文件传输时间: - 1Mbps带宽:≈13分钟 - 10Mbps带宽:≈1分20秒 - *建议搭配rsync增量同步* 3. **视频监控流** - 720P H.264 (2Mbps) 可稳定传输 - 需设置:`frpc.ini`中启用`bandwidth_limit_mode = client` > **实测建议**:通过`mtr -rw 阿里云ECS_IP`检测路由质量,若出现>10%丢包需优化网络路径[^1]。企业级场景建议搭配阿里云高速通道(HybridNet)实现<5ms延迟的混合云组网。 --- **相关问题** 1. 如何监测内网穿透链路的实时带宽? 2. 阿里云ECS突发带宽包的成本如何计算? 3. 内网穿透场景下如何保障数据传输安全? 4. 跨运营商(如电信到联通)穿透时如何优化速度?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值