内网穿透部署流程

内网穿透

        又称为NAT穿透,是一种技术手段,允许内网设备(如运行在公司内部网络、家庭网络中的服务器、智能设备等)的服务能够被外网用户访问。通常情况下,由于路由器、防火墙等设备的网络地址转换(NAT)以及安全策略限制,内网设备的服务无法直接被公网访问。内网穿透通过特定的软件或服务,将公网请求转发至内网目标设备,从而实现内外网络的通信。以下是一般内网穿透部署流程的详细讲解:

步骤一:确定需求与选择穿透工具

  1. 明确需求:确定需要穿透的服务类型(如HTTP、SSH、RDP、FTP等)、端口、预期的带宽要求、稳定性需求、安全性考虑等因素。

  2. 选择穿透工具:市面上有许多免费和付费的内网穿透解决方案,例如:

    • 免费/开源工具:Ngrok、Serveo、Localtunnel、FRP(Fast Reverse Proxy)等。
    • 付费服务:花生壳、向日葵、Ngrok商业版、ZeroTier等,通常提供更稳定的服务、更高的带宽、自定义域名绑定等功能。

    根据实际需求选择合适的穿透工具或服务。

步骤二:准备内网环境

  1. 确保内网服务正常运行:在待穿透的内网设备上安装并配置好所需的服务(如Web服务器、SSH服务器等),确保服务在内网环境中能正常访问。

  2. 检查端口开放:确认内网设备上服务监听的端口未被防火墙或其他安全软件阻塞,确保内网其他设备可以访问该服务。

步骤三:配置穿透工具

  1. 安装客户端:如果是使用客户端/服务器模式的穿透工具(如Ngrok、FRP),需要在内网设备上安装相应的客户端软件。

  2. 注册账号(如有必要):对于需要账号管理的穿透服务,如商业版Ngrok或花生壳,需先注册账号并获取API密钥或授权信息。

  3. 配置隧道:根据所选工具的文档,配置穿透隧道。通常需要指定以下信息:

    • 本地服务端口:内网服务监听的端口。
    • 协议类型:如HTTP、HTTPS、TCP等,与内网服务匹配。
    • 隧道类型:直连型(直接暴露内网服务端口)或反向代理型(将公网请求转发至内网服务)。
    • (可选)自定义域名:如果服务支持,可以绑定自定义域名以获得更友好的访问地址。

    示例配置命令可能如下:

     Bash 
    1ngrok http 8080  # 使用Ngrok穿透内网8080端口的HTTP服务
    2frpc -c frpc.ini  # 使用FRP,配置文件frpc.ini中定义了穿透规则

步骤四:启动穿透服务

  1. 启动内网穿透客户端:执行配置好的穿透命令或启动客户端程序,工具会自动建立与公网服务器的连接,并分配一个临时的公网访问地址(如https://abc123.ngrok.io)。

  2. 验证穿透效果:在外网环境下,使用工具提供的公网地址尝试访问内网服务。如果一切正常,应该能看到内网服务的内容或成功建立连接。

步骤五(可选):持久化与自动化

  1. 配置保存与重启:对于需要长期使用的穿透服务,可以保存配置信息,以便在设备重启后自动恢复穿透。具体方法视工具而定,可能涉及编写启动脚本、设置系统服务等。

  2. 域名绑定与DNS更新(如有必要):如果使用了自定义域名,需要在域名服务商处将域名解析指向穿透工具提供的公网IP或CNAME记录。注意,解析更改可能需要时间生效。

  3. 监控与日志管理:对于生产环境,建议设置监控报警,关注穿透服务的可用性、带宽使用等情况。同时,定期查看工具日志,及时发现并处理潜在问题。

        完成内网穿透的部署,后续根据实际使用情况,需要进一步调整配置、优化性能或升级服务。需要注意穿透服务的安全性,合理设置访问权限

++++++++++++++++++++++++++++++++++++++++++++++++++++++

下面是具体实现过程(ubuntu系统)实现:

一、搭建本地服务器环境(小皮面板)

这里使用phpstudy        官网下载  

常用命令

安装完成后可以在ssh工具中使用 xp 命令,来查看,面板状态,重启,关闭,修改面板密码,查看面板密码等。

另外如果你是专业人员,可以在ssh工具中输入 phpstudy 也会显示phpstudy常用 的命令

Ubuntu安装脚本: 

wget -O install.sh https://notdocker.xp.cn/install.sh && sudo bash install.sh

出现这种页面算安装完成

点击网站、点击配置、再点击修改

再返回首页

点击localhost

出现

到这里,本地服务器环境已经搭建好了,本地可以访问了(还没有内网穿透,外网还不能访问)

二、内网穿透(cpolar做内网穿透)

1、cpolar

        cpolar是一种安全的内网穿透云服务,它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务,是一款内网穿透软件。只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支付宝网关等云端服务,提高您的编程效率

2、它能用在哪些场景?  

  • 微信公众号开发,实时断点调试微信消息
  • 在没有上线部署的情况下,在发布会上演示新网站
  • 在您的开发机器上构建webhook客户程序,聊天机器人
  • 无需部署,测试连接到本地开发环境后端的移动应用程序
  • 为已经在生产环境部署的设备,提供稳定的公网访问地址
  • 从您家中运行个人云服务、AI深度学习、聊天机器人
  • 远程控制家中的电脑
  • 远程SSH控制树莓派

ip address
ifconfig

cpolar下载与安装

1.1.2.Linux #

  • 自动安装方式:一键自动安装脚本
  • 手动安装方式:在官网下载下载适用于Linux平台的zip压缩包,解压后得到cpolar,然后通过命令行带参数运行即可。

一键自动安装脚本

环境需求:

该脚本适用于Ubuntu16.04/18.04/20.04及以后,Centos7/8及以后版本,树莓派最新官方镜像,及支持systemd的新式Linux操作系统,该脚本会自动判断CPU架构(i386/amd64/mips/arm/arm64等等),自动下载对应cpolar客户端,并自动部署安装。

1. cpolar 安装(国内使用)

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

或 cpolar短链接安装方式:(国外使用)

curl -sL https://git.io/cpolar | sudo bash

2. 查看版本号,有正常显示版本号即为安装成功
cpolar version

3. token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里

cpolar authtoken xxxxxxx

4. 简单穿透测试

cpolar http 8080

按ctrl+c退出

5. 向系统添加服务
sudo systemctl enable cpolar
6. 启动cpolar服务
sudo systemctl start cpolar
7. 查看服务状态
sudo systemctl status cpolar
8. 登录后台,查看隧道在线状态

https://dashboard.cpolar.com/status

9. 安装完成

可以参考系列文章进一步使用cpolar——linux系列教程文章

注: cpolar 卸载方法
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash -s -- --remove

安装说明:

  • cpolar默认安装路径 /usr/local/bin/cpolar,
  • 安装脚本会自动配置systemd服务脚本,启动以后,可以开机自启动。
  • 如果第一次安装,会默认配置一个简单的样例配置文件,创建了两个样例隧道,一个web,一个ssh
  • cpolar配置文件路径: /usr/local/etc/cpolar/cpolar.yml

如需访问web ui 管理界面,输入http://本机ip:9200 即可访问

1.2.配置token认证令牌 #

cpolar服务的许多高级功能,需要与您注册的帐户关联才能使用。一旦您注册成功,您需要在后台仪表板上显示的authtoken参数配置cpolar客户端。它将授予您访问自己帐户的功能权限。 cpolar客户端有一个简单的’authtoken’命令,它使用起来很简单。

cpolar authtoken <YOUR_AUTHTOKEN>

1.3.将本地Web服务器公开到Internet #

cpolar允许您将本地计算机上运行的Web服务器公开到Internet。告诉cpolar您的Web服务器正在侦听哪个端口。

如果您不知道Web服务器正在侦听哪个端口,则可能是80端口,即HTTP的默认端口。

示例:将本地计算机的端口80上的Web服务器公开到Internet

cpolar http 80

启动cpolar时,它将在终端中显示一个UI,其中包含隧道的公共URL以及有关通过隧道建立的连接的其他状态和度量信息。

cpolar控制台用户界面

cpolar by @bestExpresser

Tunnel Status                 online
Version                       2.0/2.0
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://92832de0.cpolar.io -> localhost:80
Forwarding                    https://92832de0.cpolar.io -> localhost:80

Connnections                  ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

1.4.监听你的消息包流量 #

cpolar客户端提供实时Web UI管理界面,你可以在其中查看隧道上运行的所有HTTP流量。启动cpolar客户端后,只需在Web浏览器中打开http://localhost:4040 即可检查请求详细信息。

尝试向你的公开网址发出请求,完成后,请回顾检查Web UI管理界面。你将看到请求和响应包的所有详细信息,包括时间,持续时间,HEAD标头,查询参数和请求有效负载以及线路上的原始字节。

HTTP请求和响应的详细内容

1.5.重放请求 #

开发外部API发布的Web API通常会要求您做一些工作(如微信公网众号用户发送消息)来触发回调请求,从而减慢开发周期。 cpolar允许您通过单击重放任何Http请求,这样大大加快了开发调试周期。点击网络检查用户界面上任意请求右上角的重放(Replay)按钮进行重放。

只需点击一下即可重放任何针对隧道网络服务器的请求

1.6.请求消息体检查 #

cpolar特别支持Web上使用的最常见的数据交换格式。请求或响应正文中的任何XML或JSON数据都会自动为您打印并检查语法错误。

突出显示JSON语法错误的位置

2.Cpolar Web UI #

cpolar web UI管理界面,默认端口为9200。如需修改默认端口号,请查阅常见问题下的相关教程进行修改。

cpolar本地安装成功后,可通过浏览器访问cpolar web UI管理界面,以【 http://本地ip地址:9200 】形式访问,如

均可访问到cpolar web ui管理界面【也可在同个局域网下不同的设备上进行访问】,如下图所示,使用cpolar账号登录即可:

注意:如提示无法访问此网站,127.0.0.1 拒绝了我们的连接请求Network Error,请查阅常见问题。

cpolar web UI界面登录成功后,自动转入仪表盘界面。我们可以在这里创建隧道、编辑隧道、查看隧道信息、查看所生成的公网地址,查看系统状态等信息。

cpolar默认会安装两个样例隧道,可直接使用,或者编辑、删减:

  • 一个是Website隧道指向http 8080端口
  • 一个是ssh隧道,指向tcp 22端口(如为windows系统,则为remoteDesktop隧道,指向tcp 3389端口)

2.1.1.HTTP隧道 #

点击左侧仪表盘的隧道管理——创建隧道,填写隧道信息

  • 隧道名称:可自定义,注意不要与现有隧道名称重复即可
  • 协议:选择http
  • 本地地址:填写所要映射的端口号,如8080
  • 域名类型:免费套餐选择随机域名
  • 地区:可自由选择服务器地区(注意China NAS地区仅供NAS套餐用户使用)

点击创建

隧道创建成功后,页面会自动跳转到隧道列表页面,可以看到所有数据隧道,包含刚刚创建成功的tunnel-1隧道

点击左侧仪表盘的状态——在线隧道列表,可以查看到本地所有在线隧道,以及所生成的公网地址。

可以看到刚刚所创建成功的tunnel-1隧道,已经有生成了相应的公网地址,复制到浏览器访问即可:

  • 一个http协议地址
  • 一个https协议地址(省去申请/配置证书的繁琐步骤)

2.1.2.TCP隧道 #

点击左侧仪表盘的隧道管理——创建隧道,填写隧道信息

  • 隧道名称:可自定义,注意不要与现有隧道名称重复即可
  • 协议:选择tcp
  • 本地地址:填写所要映射的端口号,如22
  • 域名类型:免费套餐选择随机域名
  • 地区:可自由选择服务器地区(注意China NAS地区仅供NAS套餐用户使用)

点击创建

隧道创建成功后,页面会自动跳转到隧道列表页面,可以看到创建成功的tunnel-2隧道,状态正常为active

点击左侧仪表盘的状态——在线隧道列表,可以看到刚刚创建的tunnel-2隧道,已经有生成了相应的公网地址,本例为6.tcp.cpolar.top:10577,注意tcp://无需复制

9.常见问题 #

9.1.无法访问cpolar web ui #

当在浏览器上访问本地9200端口时,页面提示无法访问此网站,127.0.0.1 拒绝了我们的连接请求Network Error,如下图所示:

解决方案:请重启cpolar服务

2. Linux系统:

请先确认是否有安装cpolar服务,如未安装cpolar服务,请操作安装cpolar服务:

  • 向系统添加cpolar服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar
  • 查看服务状态
sudo systemctl status cpolar

如正常显示为active(running),则为启动成功状态

已安装cpolar服务,则执行命令重启cpolar服务,再重新尝试访问cpolar web ui管理界面

sudo systemctl restart cpolar

1. Windows系统:

点击开始菜单栏搜索服务,并点击打开服务,找到Cpolar Service,选中并右键点击重新启动,确认cpolar service状态为正在运行,再重新在浏览器访问本地9200端口,访问cpolar web UI管理界面。

参考:内网穿透(详细且免费)部署(现已推出新的源码 搭建网站和云盘)_内网穿透服务器搭建-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值