当前位置: 首页 > news >正文

两种内网穿透的实现方法

目录

前言:

一、IP和端口的作用

二、公网IP不够用

三、内网穿透实现方法

方法一:设置路由器

方法二:使用某些APP,例如花生壳


前言:

本文会介绍为什么需要使用内网穿透以及实现内网穿透的两种方法

一、IP和端口的作用

在网络传输时,通过IP和端口来表示“ 自己 ” 和 “ 对方 ”

举例一:

举例二:

二、公网IP不够用

在家里或者公司里面,只有路由器才有公网IP

其他电脑都只是局域网的IP,例如192.168.x.x

当局域网不同时,IP相同也不会起冲突,例如你家里的电脑和公司的电脑IP都是 192.168.0.100,但是他们局域网不同,所哟并没有冲突

当局域网的电脑需要访问公网(物联网)时,需要路由器的帮忙!

例如:

  • 主机A的局域网IP是10.1.1.100,它使用端口1025,去访问公网211.100.7.34
  • 但是它没有公网IP,跟路由器说: 哥们,帮帮忙
  • 路由器就把数据包里的(10.1.1.100:1025)改成自己的P和端口(162.105.176.65:16384),发出伪造的数据包
  • 服务器收到后,返回数据给(162.105.176.65:16384),这是路由器
  • 路由器收到数据后查表: 这是主机A要我取的数据,于是把数据包里的目的(162.105.176.65:16384)改为(10.1.1.100:1025),并发给主机A
  • 主机A收到数据

从这个过程我们可以知道:

  • 局域网的电脑,借助路由器,可以访问公网
  • 需要局域网内的电脑主动发起网络连接
  • 公网无法主动访问局域网内的电脑

无论你访问谁,在路由器里面都没有记录,这样子可以保护局域网内的电脑

但是这样子的话你在家里的电脑就没办法访问公司里面的了

所以,我们想要访问另一个局域网内的电脑,需要内网穿透

三、内网穿透实现方法

方法一:设置路由器

方法二:使用某些APP,例如花生壳

使用花生壳进行内网穿透示例:花生壳动态域名解析服务-贝锐官网|花生壳官网|DNS内网穿透|域名注册|向日葵远程控制|远程桌面|蒲公英路由器-贝锐官网

如果要做公司,最好的办法是在公网服务器上运行Nginx

在服务器上编译Nginx

1. 下载编译

  • mkdir nginx
  • cd nginx
  • wget http://nginx.org/download/nginx-1.17.9.tar.gz
  • git clone https://github.com/winshining/nginx-http-flv-module.git
  • tar xzf nginx-1.17.9.tar.gz
  • cd nginx-1.17.9
  • ./configure --add-module=/home/book/nginx/nginx-http-flv-module
  • make
  • sudo make install
  • 2.修改配置文件:/usr/local/nginx/conf/nginx.conf,如图:
  • 3.启动
  • sudo mkdir -p /var/log/nginx /var/tmp/nginx

    sudo start-stop-daemon -S -x "/usr/local/nginx/sbin/nginx" -p "/var/run/nginx.pid"

相关文章:

  • 探索 SSO 的世界:简化登录流程的最佳实践(上)
  • 12.2旋转,SPLAY树的各种操作(SPLAY与AVL是两种BST)
  • 服务器数据恢复—ocfs2文件系统被格式化为其他文件系统如何恢复数据?
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(二)——数据清洗、转换
  • 单片机怎么实现真正的多线程?
  • 第一个小记录达成:第一个年费会员用户
  • 微服务--一篇入门kubernets
  • 【重点】【区间问题】56.合并区间
  • Unity 获取物体的子物体的方法
  • 11、pytest断言预期异常
  • JVM之jps虚拟机进程状态工具
  • MySQL之时间戳(DateTime和TimeStamp)
  • 深度学习设计基于Tensorflow卷积神经网络猫的品种识别系统
  • GAN:SNGAN-谱归一化GANs
  • BearPi Std 板从入门到放弃 - 引气入体篇(3)(上两篇前言)
  • 时间复杂度分析经典问题——最大子序列和
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【Amaple教程】5. 插件
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • eclipse(luna)创建web工程
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • javascript 哈希表
  • opencv python Meanshift 和 Camshift
  • Promise面试题,控制异步流程
  • Python_网络编程
  • text-decoration与color属性
  • 从setTimeout-setInterval看JS线程
  • 大型网站性能监测、分析与优化常见问题QA
  • 番外篇1:在Windows环境下安装JDK
  • 规范化安全开发 KOA 手脚架
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • zabbix3.2监控linux磁盘IO
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # include “ “ 和 # include < >两者的区别
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (4) PIVOT 和 UPIVOT 的使用
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (一)基于IDEA的JAVA基础10
  • (原創) 未来三学期想要修的课 (日記)
  • (转)shell调试方法
  • .NET DataGridView数据绑定说明
  • .Net 中Partitioner static与dynamic的性能对比
  • .net的socket示例
  • .NET的微型Web框架 Nancy
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .NET中使用Redis (二)
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • []使用 Tortoise SVN 创建 Externals 外部引用目录