# 【Internet Protocol】ip介绍，如何组局域网实现远程桌面和文件共享

@[TOC](https://github.com/UnderTurrets/notes/blob/master/uncategorized/%E6%96%87%E7%AB%A0%E7%9B%AE%E5%BD%95/README.md)

***

## 1.何为“上网”

### 1.1 定义

通俗意义上的网络是指广域网。

**广域网（Wide Area Network），WAN，又称为公网、外网**，是一种地域范围覆盖广的计算机网络的集合，通常所覆盖的范围从几十公里到几千公里，它能连接多个地区、城市和国家。由于其超长的覆盖范围，发送介质主要是政府或者大型企业部署的电话线或光纤。我们常说的“上网”就是指拥有访问广域网的能力，包括但不限于逛B站、刷微博、水贴吧、游玩网络游戏等等行为。

**局域网（Local Area Network），LAN，又称为内网，是广域网的子集**，主要是指在某一区域的计算机互联网络。“某一区域”指的是同一办公室、同一建筑物、同一公司和同一学校等，一般是方圆几千米以内。

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/15f9f33ffad04c5ab3451754a75f9cdf.png)

局域网还分为有线局域网和无线局域网。

无线局域网（Wireless LAN，WLAN）是不使用任何导线或传输电缆连接的局域网，其使用无线电波或电场与磁场作为数据传送的介质，传送距离一般只有几十米。一般用的最多的就是WiFi和蓝牙了。

### 1.2 为什么连了WiFi就能上网了？

首先，我们要搞清楚WiFi信号源是谁。如果手机A开启热点，A就成为了信号源，手机B连接热点，A与B组成局域网。那么，接下来能否上网的关键就在于A能否访问广域网。当A开启移动数据，A就可以借助中国电信/联通/移动提供的服务访问广域网。而B可以享受A的局域网服务，B也就可以上网了。因此，只要一台设备能够访问广域网并发射WiFi信号共享网络，那么这个设备就可以当路由器。

反过来，如果B开启移动数据，拥有了访问广域网的能力，那么A能否上网呢？这就不行了。因为虽然A与B组成局域网，但是A在尝试访问广域网的时候，并不会主动地先去经过A再去访问广域网。

## 2.ip

### 2.1 什么是ip

ip就是地址。比如你现在打开了bilibili，你想看看最近的热门视频，那么bilibili官方总要把数据传输给你吧？但是此时，也许还有千千万万的人在同时浏览B站，bilibili怎么知道哪个才是你呢？依赖于ip，对方才能准确地把数据送到你的手中。

ip表现为一串数字：`X.X.X.X`。`X`在`0`到`255`之间。比如：

* 192.168.0.1

为什么`X`在`0`到`255`之间呢？因为一个字段最多容纳8位，即$2^8=256$。

### 2.2 为什么区分广域网和局域网，ip的唯一性

随着电子设备的普及，ip地址不够用了！理论上来说，全世界的ip地址$256^4$个，也就是大约43亿个，已经不能满足需求。

刚刚说过，ip用四个数字表示，这就好比，你在淘宝买了个东西，地址只能填写四个字段，第一个就填中国吧，第二个字段你要填省份吧，第三个字段你还得填城市吧，第四个字段你又得填县区吧。到这儿，这四个字段已经用完了，你还没填写你的街道、小区、楼栋、门牌号呢...

有读者可能会问了，那为什么不能跳过其中一个字段呢？比如我填写江苏省翻斗花园小区，那么问题就来了。卖家一查发现，苏州市有3个翻斗花园小区，南京市有5个翻斗花园小区...这该怎么办呢？

因此，衍生出了局域网这一概念。这就好比有个总代理商，我在苏州买东西只要找苏州的代理商，告诉他我在苏州的花园路翻斗花园小区A栋666室，然后淘宝把货物寄送给位于中国江苏苏州的代理商，代理商在转寄给我。其中，**代理商提供局域网服务，我的ip地址是给代理商看的。代理商的ip是中国江苏苏州，我的ip是花园路翻斗花园小区A栋666室。我的ip是局域网ip，代理商ip是广域网ip。**

广域网ip全球唯一；局域网ip全球不唯一，在局域内唯一。在实际生活中，代理商远远不止一层，在“苏州代理商”之上可能还有“江苏代理商”、“中国代理商”...

在ip中，下面四个区间被专门用来当作局域网的ip。

* 10.0.0.0\~10.255.255.255
* 172.16.0.0\~172.31.255.255
* 192.168.0.0\~192.168.255.255

### 2.3 如何查看设备的ip

无论是广域网还是局域网，我们的设备是通过一种叫网络适配器或者说网卡的东西连接到网络的。**从来没有**`一台设备只有一个ip`的说法，应该说`一个网卡只有一个ip`，而一台设备可能有多个网卡，这些网卡可能是实物，可能是虚拟的。这里提供windows查看ip的一种方法：

```powershell
PS C:\Users\Xu Han> ipconfig

Windows IP 配置


以太网适配器 以太网:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 1:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 以太网 2:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::3346:3324:fe98:fbef%16
   IPv4 地址 . . . . . . . . . . . . : 175.10.207.84
   子网掩码  . . . . . . . . . . . . : 255.255.252.0
   默认网关. . . . . . . . . . . . . : 175.10.204.1

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::1ee1:6b38:dda8:21c%14
   IPv4 地址 . . . . . . . . . . . . : 192.168.73.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::2957:79c:3af6:bd92%2
   IPv4 地址 . . . . . . . . . . . . : 192.168.202.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

无线局域网适配器 本地连接* 2:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::26de:ce8:b2be:2ab9%18
   IPv4 地址 . . . . . . . . . . . . : 192.168.137.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

无线局域网适配器 WLAN:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 蓝牙网络连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
```

下面我解释一下我的这些网卡

* 以太网适配器 以太网：笔记本电脑自带的RJ45网口
* 无线局域网适配器 本地连接：笔记本电脑发射热点对应的网络适配器
* 以太网适配器 以太网 2：笔记本电脑外接了一个拓展坞，拓展坞上有一个网口
* 以太网适配器 VMware Network Adapter VMnet：VM虚拟机的网络适配器
* 无线局域网适配器 WLAN：WiFi连接
* 以太网适配器 蓝牙网络连接：蓝牙连接

可以看出，此时我的网络连接状态是：

1. 拓展坞使用网线连接到中国电信宽带，这样本机就拥有了访问广域网能力
2. 开启热点分享给手机，手机也拥有了访问广域网能力，节省流量
3. VM虚拟机的网络由VMware自动配置，无需管理
4. 没有连接WiFi和蓝牙，笔记本自带的RJ45网口也没有连接

### 2.4 什么叫"ping"

`ping`是测试两个ip之间是否联通的方式。下面我分别尝试ping`bing.com`和我的手机ip`192.168.137.237`。`bing.com`是广域网ip，`192.168.137.237`是局域网ip。根据我之前所说的我的笔记本电脑的网络情况，这两个ip应该都能ping通。

```powershell
PS C:\Users\Xu Han> ping bing.com

正在 Ping bing.com [204.79.197.200] 具有 32 字节的数据:
来自 204.79.197.200 的回复: 字节=32 时间=58ms TTL=117
来自 204.79.197.200 的回复: 字节=32 时间=58ms TTL=117
来自 204.79.197.200 的回复: 字节=32 时间=58ms TTL=117
来自 204.79.197.200 的回复: 字节=32 时间=58ms TTL=117

204.79.197.200 的 Ping 统计信息:
    数据包: 已发送 = 4，已接收 = 4，丢失 = 0 (0% 丢失)，
往返行程的估计时间(以毫秒为单位):
    最短 = 58ms，最长 = 58ms，平均 = 58ms
PS C:\Users\Xu Han> ping 192.168.137.237

正在 Ping 192.168.137.237 具有 32 字节的数据:
来自 192.168.137.237 的回复: 字节=32 时间=40ms TTL=64
来自 192.168.137.237 的回复: 字节=32 时间=4ms TTL=64
来自 192.168.137.237 的回复: 字节=32 时间=76ms TTL=64
来自 192.168.137.237 的回复: 字节=32 时间=5ms TTL=64

192.168.137.237 的 Ping 统计信息:
    数据包: 已发送 = 4，已接收 = 4，丢失 = 0 (0% 丢失)，
往返行程的估计时间(以毫秒为单位):
    最短 = 4ms，最长 = 76ms，平均 = 31ms
```

结果确实如此。其中，TTL指定IP包被路由器丢弃之前允许通过的最大网段数量。简而言之，TTL越大，经过的“分销商”越多。

### 2.5 区分是否两个ip是否在同一局域网

#### 2.5.1 最稳妥的方式：ip\&mask

1. 查看两个网卡的`子网掩码mask`，若子网掩码不一样，则不在同一局域网内。
2. 若子网掩码一样，计算`ip&mask`，这是`按位与`运算，网上有很多[在线运算器](https://iiis.tsinghua.edu.cn/ip/)。
3. 若`ip&mask`一样，则为同一局域网

#### 2.5.2 最方便的方式：ping

1. 互相`ping`看能不能ping通。
2. 若ping通，且TTL=64（64为默认值），则为同一局域网

### 2.6 ipv4与ipv6的区别

前面说的ip的表现形式：`X.X.X.X`，其实是ipv4的表现形式。ipv6的形式略有不同：`XXXX:XXXX:XXXX:XXXX:XXXX:XXXX`。区别在以下几点：

1. 点号改为冒号分隔
2. 二进制改为十六进制
3. 4个字段改为6个字段
4. 更加安全

可以看出，ipv6的ip数量比起ipv4大大增加，很长一段时间内我们不必担心不够用。

## 3.远程桌面控制

控制端被称为客户端，被控制端被称为服务端。nomachine是局域网远程控制常用的软件之一。下面以此为例，介绍在局域网内远程桌面控制。

### 3.1 一根网线将两台设备组局域网

网上绝大多数的nomachine教程只讲解了nomachine的图形交互界面如何操作，却没有讲解如何组网，对小白很不友好。下面我将详细讲解如何从组网到连接成功。

1. 断开客户端和服务端的所有其他网络连接：WiFi，蓝牙等...因为这些连接会干扰nomachine在局域网内搜索可控设备 。
2. 用一根网线连接客户端和服务端，找到并确定客户端和服务端对应连接上的网卡。之前说过一台设备可以有很多网卡，这里不要找错了！因为上一步已经断开了其他网络连接，这里只要找连接上的就行了，一般都不会出错。
3. 关键来了！把客户端网卡和服务端网卡的网关设置为一模一样！ip地址都设置为局域网静态ip。根据先前的知识，网关和ip应该处于以下三段中。当然，客户端和服务端的ip不能相同。
   * 10.0.0.0\~10.255.255.255
   * 172.16.0.0\~172.31.255.255
   * 192.168.0.0\~192.168.255.255
4. 根据前面的知识，子网掩码就不能随便设置了，要保证客户端和服务端的子网掩码一模一样并且`ip&mask`一模一样。举例来说：
   * 客户端：ip:`192.168.1.1`，子网掩码：`255.255.255.0`，网关`192.168.1.111`
   * 服务端：ip:`192.168.1.2`，子网掩码：`255.255.255.0`，网关`192.168.1.111`

windows调整方法：在系统设置中编辑，然后编辑ipv4

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/76235e12ca254443a4490f8775c642b8.png)

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/8a3db50791b54ebeba3d21da7fdd7b4f.png)

Ubuntu调整方法：设置中编辑即可

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/3998d5a927dc4af3aef3c31e80185d44.png)

### 3.2 win控制Ubuntu

组成局域网后，服务端打开nomachine服务，客户端打开nomachine可以自动检测到，然后输入服务端的账密即可。

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/5f716911b4184de7aaca3e6cd596481e.png)

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/ffef807908164ed599a22d55ef385779.png)

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/4775b2196c21439f8a67ee2a2a596ad5.png)

### 3.3 广域网桌面控制

广域网桌面控制受限于我们的网速，而上面我们做的有线局域网桌面控制只受限于我们所使用的网线和网卡的带宽。目前市面上有很多傻瓜式的广域网桌面控制软件，譬如向日葵、ToDesk、TeamViewer等等，基本都是付费的。由于使用了软件提供商的服务器进行传输，数据安全也得不到保障，但胜在方便简易。

## 4.文件共享

一根网线组成局域网后，文件共享和传输速度都极为快速，上限取决于网卡和网线的带宽！下面简要介绍一下windows文件共享方式：

服务端的系统需要设置一下：

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/95f2bde5f17441a2aa2d3f113eb37770.png)

服务端要分享的目录要设置一下：

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/69e4cff8ae7147288bac37dd630d69f0.png)

客户端通过`win+R`输入服务端的ip即可：

![在这里插入图片描述](https://cdn.jsdelivr.net/gh/UnderTurrets/ImageHosting/%E5%85%B6%E4%BB%96/assets%E3%80%90InternetProtocol%E3%80%91ip%E4%BB%8B%E7%BB%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BB%84%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/8713a19e58954827bee0670983a228ad.png)

### 广域网文件共享

方式太多了，网盘、qq文件都是这类范畴。传输速度取决于服务商的网速和你的网速，比如臭名昭著的百度网盘非会员只有几十kb/s。
