<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Network on Time Friend</title><link>https://time-friend.com/zh/tags/network/</link><description>Recent content in Network on Time Friend</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 12 Sep 2018 00:00:00 +0000</lastBuildDate><atom:link href="https://time-friend.com/zh/tags/network/index.xml" rel="self" type="application/rss+xml"/><item><title>利用ngrok给你的机器打个洞 - 内网穿透</title><link>https://time-friend.com/zh/archive/punch-hole-in-your-machine-with-ngrok-internal-network-penetration/</link><pubDate>Wed, 12 Sep 2018 00:00:00 +0000</pubDate><guid>https://time-friend.com/zh/archive/punch-hole-in-your-machine-with-ngrok-internal-network-penetration/</guid><description>&lt;p&gt;我有很多自己的个人代码是跑在家里的服务器中的.一般来说都是自动化的处理我的一些生活问题,与数据收集等相关活动.
所以一般没有客户端访问家里服务器的需求.
但是很多时候脑子突发奇想.有一些小点子,一些小的bug或者小的优化,代码修改完成之后,有一个部署到需求.
因为家里服务器没有一个稳定的外网IP的,外网不能直接连接服务器.
所以我们需要 &lt;code&gt;内网穿透&lt;/code&gt;.&lt;/p&gt;
&lt;h1 id="内网穿透"&gt;内网穿透&lt;/h1&gt;
&lt;p&gt;家里用的是小米路由器,小米路由器里面集成了花生壳,理论上是可以做到内网穿透的.无奈的是,一直都没有配置成功过.&lt;/p&gt;
&lt;p&gt;网上找过很多内网穿透的工具:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;花生壳&lt;/li&gt;
&lt;li&gt;NAT&lt;/li&gt;
&lt;li&gt;frp&lt;/li&gt;
&lt;li&gt;ngrok&lt;/li&gt;
&lt;li&gt;localtunnel&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ngrok"&gt;ngrok&lt;/h2&gt;
&lt;p&gt;选择ngrok的原因很简单,配置方便,并且支持tcp协议.
支持tcp协议代表,我可以直接在外面用SSH来访问家里的机器.&lt;/p&gt;
&lt;h3 id="用法"&gt;用法&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;首先你需要去&lt;a href="https://ngrok.com/"&gt;官网&lt;/a&gt;注册一个账号&lt;/li&gt;
&lt;li&gt;下载ngrok,并且解压到一个你喜欢的目录下面&lt;/li&gt;
&lt;li&gt;去官网复制你的授权码&lt;/li&gt;
&lt;li&gt;授权ngrok&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ngrok authtoken 授权码
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="http"&gt;http&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ngrok http &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="tcp"&gt;tcp&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ngrok tcp &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://ngrok.com/static/img/ngrok-demo-static.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;最终你会得到,一个外网可以访问的地址.
用这个地址就可以直接访问到你本机的端口了.&lt;/p&gt;
&lt;p&gt;当我们拥有这样一个公网地址之后,我们就可以ssh来控制家里的机器
或者使用github的webhook来做一切你想要做的事情.&lt;/p&gt;</description></item><item><title>Network笔记整理 - 网络协议与网络分层</title><link>https://time-friend.com/zh/archive/network-notes-network-protocols-and-network-layering/</link><pubDate>Thu, 30 Aug 2018 00:00:00 +0000</pubDate><guid>https://time-friend.com/zh/archive/network-notes-network-protocols-and-network-layering/</guid><description>&lt;p&gt;《圣经》中有一个通天塔的故事,上帝为了阻止人类联合起来，就让人类说不同的语言。人类没法儿沟通，达不成“协议”，通天塔的计划就失败了。&lt;/p&gt;
&lt;p&gt;千年之后,一群工程师为了解决这一问题,制定了各种协议与标准,让各种设备可以通过协议通信,进而通过互联网实现了让世界互联.&lt;/p&gt;
&lt;p&gt;就像我们现在写的代码,用着通用的程序语言,世界也就随之打通了.我们的计算机语言也算是一种协议.&lt;/p&gt;
&lt;p&gt;想要让世界互联,让计算机们都联合起来,就必须要用到网络协议让他们相互协作,来完成共同的目标.&lt;/p&gt;
&lt;h2 id="协议三要素"&gt;协议三要素&lt;/h2&gt;
&lt;p&gt;(1) 语义。每一段内容需要代表某种意义
(2) 语法。每一段内容符合一定规则的格式,
(3) 时序。每一段任务的执行顺序.&lt;/p&gt;
&lt;h2 id="网络分层"&gt;网络分层&lt;/h2&gt;
&lt;p&gt;网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包，控制信息的加载或拆出等工作，分别由不同的硬件和软件模块去完成。&lt;/p&gt;
&lt;p&gt;简单的来说一个完整的HTTP请求,途中需要经过数次传送,期间需要不通的都软件与硬件模块去完成相应的工作.
我们对相应的阶段的不通特性做出来相应的分类.每种网络分层,都有相应的协议标准做数据传送.&lt;/p&gt;
&lt;p&gt;就像是一家公司,不通层级的人会用着不通的沟通方式来打交道.网络也大概如此.&lt;/p&gt;
&lt;h2 id="我们常用的网络协议有哪些"&gt;我们常用的网络协议有哪些?&lt;/h2&gt;
&lt;p&gt;我们的网络在通讯过程中,要通过哪些设备,哪些协议才能做到一次完整的通讯?&lt;/p&gt;
&lt;p&gt;网络层次可划分为五层因特网协议栈和七层因特网协议栈&lt;/p&gt;
&lt;h3 id="五层模型"&gt;五层模型&lt;/h3&gt;
&lt;p&gt;因特网协议栈共有五层：应用层、传输层、网络层、链路层和物理层。不同于OSI七层模型这也是实际使用中使用的分层方式。
（1）应用层
支持网络应用，应用协议仅仅是网络应用的一个组成部分，运行在不同主机上的进程则使用应用层协议进行通信。
（2）传输层
负责为信源和信宿提供应用程序进程间的数据传输服务，这一层上主要定义了两个传输协议，传输控制协议即TCP和用户数据报协议UDP。
（3）网络层
负责将数据报独立地从信源发送到信宿，主要解决路由选择、拥塞控制和网络互联等问题。
（4）数据链路层
负责将IP数据报封装成合适在物理网络上传输的帧格式并传输，或将从物理网络接收到的帧解封，取出IP数据报交给网络层。
（5）物理层
负责将比特流在结点间传输，即负责物理传输。该层的协议既与链路有关也与传输介质有关&lt;/p&gt;
&lt;h3 id="五层模型对应的协议"&gt;五层模型对应的协议&lt;/h3&gt;
&lt;p&gt;物理层：以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等&lt;/p&gt;
&lt;p&gt;数据链路层：Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等&lt;/p&gt;</description></item></channel></rss>