映射公网的几种方式

2023-05-16

转载自:http://blog.csdn.net/sadshen/article/details/48240519

这篇文章花了好几天,系统地梳理出了映射公网的几种方式。虽然是针对微信开发的外网服务器来寻找解决方案,但这个知识梳理可能会在其他地方也受益。平常我也有用TeamViewer,在搜集资料的过程中也知道了其大致工作原理。还有一些免费好用的反向代理软件,可能会在后头派上用场。

这篇干货分享在此,转载请注明:http://blog.csdn.net/sadshen/

一、映射公网的两种方式介绍

1 动态域名解析+端口映射(公网环境)

动态域名解析,俗称DDNS。目前提供这种服务的厂商还挺多,我目前知道有几家:

Oray花生壳

PubYun公云

No-IP

DynDNS

如果你对一个公网IP有权限,那就可以采用这种方式。你的路由器的WAN口就是宽带,那这种方式就适用。DDNS的作用就是将WAN口分配到IP与域名绑定在一起,访问这个域名,相当于就访问到了你的WAN口。于是你只要在路由器上做一个端口映射即可。

此种方式的局限性可能就是大部分运营商都屏蔽了80等常用端口,所以做微信开发要用到80端口的话这种方式就不大适合。

2 反向代理(内网环境)

如果你在一家公司上班,公司内部可能分了好几级的路由,就比如我,那第一种方式就走不通。写零java基础搞定微信Server_3:搭建微信

Server本地开发环境那晚弄到半夜就是这个原因。哦,我当然不是在加班。我在家里,房间用了一个二级路由,那晚真真是搞死宝宝了。

下面这两张图可以快速了解反向代理。

我们是采用本机与反向代理server组建网络(相当于一个虚拟局域网),访问反向代理server的数据都被转发到本机。

从有简单一点的将内网映射到外网的工具吗?这个帖子中收获良多。作者沙渺告诉我们:

实际上ngrok就是一种仅仅针对http单一用途的代理服务。ngrok的原理很可能并不是真正的内网穿透,而是真的老老实实的充当反向代理,承担所有实际发生的流量。

这方面的替代服务有localtunnel.me和pagekite等。

内网穿透的应用中,通讯双方必然首先对一个公网服务器主动发起连接。。。

各种相关的软件都是如此,例如TeamViewer、Oray向日葵乃至QQ远程协助等。就说这个ngrok,其实也是需要通讯双方连接ngrok中心服务器,甚至中心服务器的某些高级功能还提供付费计划对吧。

于是乎,我们映射公网的工具,除了ngrok之外,又多了localtunnel.me和pagekite。

二、反向代理的实现

1 自己创建反向代理服务

用这种方式,成本较高,需要三样东西:

服务器

代理服务端的监听转发程序

目的服务端(同时也是面向代理服务器的客户端)的主机转发程序

如果你有服务器,那自己写个转发工具应该是可以实现的。比较省力的方式是参考ngrok的源码。ngrok是应该浓墨重彩写一番,开源,自由,github上开源了V1.0版本

https://github.com/inconshreveable/ngrok/

一个在自己VPS搭建ngrok的实例,https://imququ.com/post/self-hosted-ngrokd.html

很多人和我一样,现阶段就想做一个微信开发,那自己花大精力去实现一个反向代理显然不值得。这时候就得从已有的软件中进行选择。运行稳定,成了最主要考虑的因素。

2 厂商服务

Ngrok比较出名,提供免费服务,但可惜容易被墙。那解决方式就是墙内也搞Ngrok。由于我所知有限,仅仅把目前知道的几家列出来。(这里我可能先入为主了,因为我把这些厂商粗暴地分为了Ngrok和非Ngrok,忽略了其他厂商们所做出的努力。)

Ngrok

免费,但会被墙。

Tunnel

昨晚测试,访问不了。

localtunnel

可用

pagekite

可用

新花生壳

开通内网映射,映射主机即可。目前免费版也要收取8块钱的费用就是了。

NAT123

功能同花生壳,但似乎是免费的。

原文链接:http://blog.csdn.net/sadshen/article/details/48240519

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

映射公网的几种方式 的相关文章

  • android studio for android learning (十三) 一个简单的图片查看器示例

    1 程序界面很简单 xff0c 一个按钮和一个ImageView组件 xff0c 当用户按下按钮时 xff0c 程序会自动搜寻 assets 目录下的一张图片 2 在android studio中新建的工程并不存在assets目录 xff0
  • 最新关于高德地图定位失败10:定位服务启动、解决办法

    1 定位服务无效 xff0c 并且提示 定位失败 10 定位服务启动失败 2 需要在AndroidManifest中添加 lt service android name 61 34 com amap api location APSServ
  • python中关于图例legend在图外的画法简析

    1 最近遇到一个问题 xff0c 关于图例legend如何画在图外的问题 xff0c 并以适合的比例显示出来 2 首先传统的做法如下 xff0c 这种方式并不能满足我的要求 xff0c 而且是显示在图内 ax1 legend loc 61
  • SVM总结

    http blog csdn net lc013 article details 55195523
  • 排序算法理解浅析

    1 排序算法有很多 xff0c 准确的理解可以帮我们快速实现工程问题 xff0c 一种是比较排序 xff0c 时间复杂度最少可达到O n log n xff0c 主要有 xff1a 冒泡排序 xff0c 选择排序 xff0c 插入排序 xf
  • Java事件处理机制(自定义事件)

    转载地址 xff1a http blog csdn net qq 35101189 article details 61673121 ref 61 myread Java中的事件机制的参与者有3种角色 xff1a 1 event objec
  • Hadoop启动命令

    下载hadoop并解压 配置hdfs 修改配置文件etc hadoop hadoop env sh JAVA HOME 61 home middleware jdk 修改配置文件etc hadoop core site xml lt con
  • Git命令:切换分支 & 下载指定分支命令

    git一般有好多分支 xff0c 最近项目中将master分支代码clone到本地 xff0c 用到一些git命令 xff0c 于是记录一下 1 查看远程分支 git branch a git branch a dev master rem
  • 无人机POS数据中GPS/IMU数据的解析(航向角、俯仰角、翻滚角)

    POS数据参数的介绍 无人机在飞行作业时 xff0c 获取的无人机影像通常会携带配套的POS数据 从而在处理中可以更加方便的处理影像 而POS数据主要包括GPS数据和IMU数据 xff0c 即倾斜摄影测量中的外方位元素 xff1a xff0
  • PyTorch 训练时中遇到的卡住停住等问题

    目录 前言1 PyTorch 训练时在第一个 epoch 的最后一个 batch 卡死 问题描述 可能的原因 解决方法 2 使用命令行运行时 xff0c 卡在第一个 epoch 问题描述 原因分析 解决方法 前言 在实际训练中遇到了各种各样
  • 【CSS】CSS的三种使用方式

    CSS的三种使用方式 CSS内联样式 xff08 行内样式 xff09 内部样式表外部样式表 CSS 网页分成三部分 结构 xff08 HTML xff09 表现 xff08 CSS xff09 行为 xff08 JavaScript xf
  • kubernetes 控制平台和节点之间的通信

    这篇文章也是翻译的官网 xff1a Control Plane Node Communication 这篇文章主要罗列 xff08 catelogs xff09 控制平台 xff08 更确切的说是apiserver xff09 和工作节点
  • LPMS-IG1 IMU内参标定

    LPMS IG1 IMU内参标定流程 1 安装IMU驱动 2 安装标定软件 3 录包 4 标定 IMU驱动安装 参考IMU官网驱动安装流程 xff0c 链接 xff1a https www alubi cn support download
  • WebScarab拦截WebGoat的请求

    第一步 xff1a 配置WebSarab的Proxy xff0c 使得与WebGoat的端口相同 第二部 xff1a 开启WebSarab应用 xff0c 然后开启webGoat http localhost WebGoat attack
  • webpack常见错误的解决办法

    项目列表 1 安装webpacke 在本项目中安装webpack xff0c save dev的意思是将依赖写入项目的package json文件 npm install save dev webpack 安装过程中如果出现类似上述的提示
  • /usr/bin/ld: cannot find -lnvcuvid

    我们在安装cuda后 xff0c 会测试cuda的安装情况 xff0c 在 sample文件夹中sudo make后会出现这样的错误 xff1a usr bin ld cannot find lnvcuvid 而我们的解决方案就是你使用的网
  • UML建模与软件开发设计(六)——类图设计与类之间的关系

    3 2 5 关联关系的分类 然而 xff0c 通过关联关系来描述类与类时还是比较抽象 xff0c 有些关系的细节难以通过关联关系表达出来 xff0c 比如类A与类B的角色定位 数量关系 xff0c 关联方向等都描述得不够清晰准确 xff08
  • 四轴PID讲解

    插播一条DJI招聘信息 常年有效 xff1a 包括控制算法 软件功能开发 SDK 嵌入式软件开发 GNSS接收机设计 测试开发 xff08 包括CI持续集成 xff09 请各位对空中机器人 xff0c 地面机器人 xff0c 教育机器人有兴
  • 守护进程

    本博客为本人学习UNIX高级环境编程总结 13 守护进程 13 1 简介 守护进程 xff08 daemon xff09 是生存期长的一种进程 它们常常在系统引导装入时启动 xff0c 仅在系统关闭时才终止 因为它们没有控制终端 xff0c

随机推荐

  • chmod +x,赋予“可执行”权限

    1 chmod 43 x的意思就是给执行权限 xff08 1 xff09 LINUX下不同的文件类型有不同的颜色 xff0c 绿色文件 xff1a 可执行文件 xff0c 可执行的程序 红色文件 xff1a 压缩文件或者包文件 蓝色文件 x
  • Flask-SQLAlchemy和alembic结合(步骤)

    在之前的数据库操作中 xff0c 我们新增一个字段是不是每次都得删除数据库表 xff0c 然后再重新将新创建的数据库表映射到数据库中 这样操作是不是很蛋疼 xff1f 是吧 xff1f 于是sqlalchemy作者拜尔为了解决这一问题 xf
  • pixhawk模块添加和修改以及经验分享

    我看了apm的代码半年 xff0c px4的代码也看了一段时间 xff0c 把我在这个过程遇到的问题和大家分享一下 xff0c 我觉得有些人也会遇到同样的问题 xff0c 给这部分人一点提示 谢谢大家 首先还是先从apm讲起 xff0c 它
  • 第一篇——记录自己的学习过程吧

    初次写博客 xff0c 希望记录一下自己的学习之路 xff0c 也希望以这种方式来监督提醒自己在这条喜欢的路上走下去 xff0c 希望再回首 xff0c 我能看的一个不一样的自己 本人大三程序员 xff0c 可以说是非常渣的那种 我选择软件
  • 什么是ELK?

    出处 xff1a https www cnblogs com aresxin p 8035137 html 我们在进行日志分析时 xff0c 目前的处理方式是在日志文件中grep xff08 一种强大的文本索引工具 xff09 awk xf
  • linux shell脚本将命令执行结果赋值给变量

    使用 例子 xff1a a 61 echo hello world 将命令echo 34 hello world 34 的输出赋给变量a
  • 网段、子网掩码计算方法

    计算 10 21 224 0 22 表示的网段 10 21 224 0 22 是表示网段的方法 xff0c 前面是ip或者子网 xff0c 后面的数字是掩码中高位算起1的位数 xff0c 22就是掩码的高位有22个1 xff0c 即 xff
  • ES6 module.exports和export详解

    module exports和export详解 前言一 commonJs 使用步骤1 导出属性2 导出类 二 ES6规范对外暴露的方式分别暴露统一暴露暴露的时候指定别名 默认暴露 引入方式1 解构赋值引入2 直接引入3 通配符导入 前言 概
  • STM32最小系统详解

    STM32最小系统详解 1 电源电路2 晶振电路3 复位电路4 下载电路 xff08 串口下载 xff09 本文章将以普中的STM32F103系列的开发板为载体 xff0c 任何一款STM32开发板都是在其最小系统基础上添加多个功能模块组成
  • 【CAM】Learning Deep Features for Discriminative Localization

    论文链接 github Abstract 1 Introduction CNN能保留位置信息 xff0c 但经过用于分类的全连接神经网络时会丢失位置信息 最近的NIN和GoogLeNet使用全卷积网络 避免使用全连接层 xff0c 来减少参
  • yolov3详解

    目录 1 anchor的计算机制 2 anchor对应机制 3 网络结构 4 训练过程 5 测试过程 1 anchor的计算机制 锚框anchor是真值框和预测框之间的桥梁 xff1a 预测框在锚框基础上 xff0c 预测出框的大小 xff
  • javaScript-06 表单验证 详细易懂,加案例分析

    目录 一 JS表单验证基本介绍 1 1 JS表单验证概述 1 2表单验证的作用 1 3JS表单验证需求分析 二 JavaScript 事件列表 三 表单验证方式 3 1 string常见方法 3 2 案例 例 xff1a submit事件
  • 云服务器如何选型?可以从这几个方面来考虑

    一 主机配置选择 云服务器的配置因公司业务而异 xff0c 一般来说对于访问量较小的个人网站 xff0c 1核1G更合适 xff0c 2核4G的配置可以满足大多数的用户需求 xff0c 比如企业运营 一般性数据处理 并行计算处理等 xff0
  • 智能家居项目实训笔记(华清远见)(一)

    智能家居项目笔记 准备工作C 43 43 c 43 43 编译器g 43 43 命令符操作命名空间头文件写法指针和引用引用数组引用指针引用C 43 43 修改一块内存 准备工作 基础语法 xff1a C 43 43 跨平台开发 xff1a
  • Object Tracking using OpenCV (C++/Python)(使用OpenCV进行目标跟踪)

    原文链接 xff1a https www cnblogs com annie22wang p 9366610 html 本博客翻译搬运自https www learnopencv com object tracking using open
  • 使用securecrt从远程服务器A ssh连接到服务器B

    在工作中我们经常遇到这样一个问题 xff0c 服务器A和服务器B在一个内网中 xff0c 服务器A有外网ip xff0c 但服务器B没有外网ip或者我们只知道服务器B的内网ip 这时候我们要怎么登上服务器B呢 xff1f 假设服务器A和B都
  • Ubuntu图形界面突然崩溃

    teamviewer远程操作 xff0c 在多工作区切换时Ubuntu图形界面崩溃 重启图形画面后tty7黑屏 sudo service lightdm restart 查看日志 var log lightdm x 0 log 查看日志 v
  • Ubuntu安装显卡驱动

    首先选择显卡对应的驱动版本 sudo bash NV sh no opengl files no x check no nouveau check 参考链接 xff1a https www cnblogs com matthewli p 6
  • Ubuntu 下mysql数据库存放位置迁移

    1 确认mysql 数据存放位置 mysql u root p 输入密码后进入命令好操作 show variables like 39 dir 39 可以看到我们的数据库存放在 datadir 61 var lib mysql 然后关闭my
  • 映射公网的几种方式

    转载自 xff1a http blog csdn net sadshen article details 48240519 这篇文章花了好几天 xff0c 系统地梳理出了映射公网的几种方式 虽然是针对微信开发的外网服务器来寻找解决方案 xf