参考资料
一文搞懂网络知识,IP、子网掩码、网关、DNS、端口号
IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?
22、了解网卡和IP地址
IP地址,IPV4与IPV6
IPV4地址详细解释
网关和路由器的区别
0000 0000, 0000 0000, 0000 0000, 0000 0000
也就是0~255. 0~255. 0~255. 0~255
,IPV6地址是为了彻底的解决掉IP地址不足的问题,升级的IP地址协议的地址。112.65.1.206
这个就是公网IP,但是我们网络显示的192.168.0.100
的IPV4地址是什么?答案是私网(内网)IP,因为公网IP用32bit的表示最大也就43亿个,但是现在看来43亿个明显满足不了全世界使用,所以有IPV6地址的概念解决这个不足192.168
开头的IP地址,这些是内网IP,通俗的理解就是,内网IP是通过你的设备连接的路由器或者交换机给你分配的,如果你的路由器或者交换机上不了外网,那么你的设备只能在你的内网IP内进行互相通讯,而无法访问外网internet,即路由器或者交换机接入这个唯一的外网IP地址112.65.1.206
然后分配给你的能够访问这个网络的地址又为192.168.0.100
,这样你以192.168.0.100
的身份,通过路由器或者交换机做变化,以112.65.1.206
的身份访问外网10.0.0.0~10.255.255.255
,172.16.0.0~172.31.255.255
,以及192.168.0.0~192.168.255.255
等网段,公网IP为除此之外大部分IP,内网IP一般需要通过NAT(Network Address Translation是指网络地址转换)方可访问internet,公网IP可以直接访问internet192.168.0.1
表示IP
,其中/24
表示子网掩码为255.255.255.0
即,1111 1111,1111 1111,1111 1111,0000 0000
,子网掩码一共24个1192.168.0.1/24
,网络B的IP地址范围为192.168.1.1/24
,两个网络由于IP地址和子网掩码与计算出的结果不一致,之间是不能进行通信的**(也就是内网IP地址和子网掩码计算出来的网络地址和网关地址是两个概念)**,如果要实现这两个网络之间的通信,则必须通过网关。即网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B。序号 | 连接方式 | 特点 |
---|---|---|
1 | 网络地址转换(NAT) | 虚拟机可以访问外部网络,但是外部网络不可访问虚拟机 |
2 | 桥接网卡 | 实际意义是将虚拟机直接接入到和主机一样的网络设备上,主机和虚拟机可以互相访问 |
3 | Host-Only | 主机访问虚拟机,但是虚拟机不可访问外网 |
本文实现的虚拟机和主机进行互ping是基于桥接网络,因此虚拟机和主机最后会处于同一个IP网段内,即假设路由器IP为:192.168.0.1,子网掩码为255.255.255.0,则这个网段为192.168.0.1~192.168.0.255
192.168.0.106/24
sudo gedit /etc/netplan/01-network-manager-all.yaml
,这里的配置文件可能是00-network-manager-all.yaml
可以自行tab补齐查看,修改内容如下所示,修改完成之后输入sudo netplan apply
即可生效# Let NetworkManager manage all devices on this system
# network:
# version: 2
# renderer: NetworkManager
network:
version: 2 # 这个版本号和原来一致即可
ethernets:
ens33: # 网卡名
dhcp4: no # 是否DHCP
addresses: [192.168.0.101/24] # IP地址
gateway4: 192.168.0.1 # 网关
nameservers:
addresses: [114.114.114.114,8.8.8.8] # DNS信息
(venv) pc@pc:~$ sudo gedit /etc/netplan/01-network-manager-all.yaml
[sudo] password for pc:
(venv) pc@pc:~$ sudo netplan apply
(venv) pc@pc:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255
... ...
(venv) pc@pc:~$ ping www.baidu.com -c 2
PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=55 time=15.4 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=55 time=15.2 ms
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 15.170/15.265/15.361/0.095 ms
(venv) pc@pc:~$
C:\Users\R7000>ping 192.168.0.101
正在 Ping 192.168.0.101 具有 32 字节的数据:
来自 192.168.0.101 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.101 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.101 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.101 的回复: 字节=32 时间<1ms TTL=64
192.168.0.101 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
C:\Users\R7000>
(venv) pc@pc:~$ ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
^C
--- 192.168.0.100 ping statistics ---
34 packets transmitted, 0 received, 100% packet loss, time 33794ms
(venv) pc@pc:~$
(venv) pc@pc:~$ ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_seq=1 ttl=128 time=0.473 ms
64 bytes from 192.168.0.100: icmp_seq=2 ttl=128 time=0.490 ms
64 bytes from 192.168.0.100: icmp_seq=3 ttl=128 time=0.600 ms
^C
--- 192.168.0.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2050ms
rtt min/avg/max/mdev = 0.473/0.521/0.600/0.056 ms
(venv) pc@pc:~$
sudo gedit /etc/netplan/01-network-manager-all.yaml
,这里的配置文件可能是00-network-manager-all.yaml
可以自行tab补齐查看,修改内容与VMware一致,如下所示,# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.11/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
sudo netplan apply
即可生效,这里主机IP为192.168.1.9
,与主机互相通讯测试pcv@pc:~$ sudo netplan apply
pcv@pc:~$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
... ...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
... ...
pcv@pc:~$ ping 192.168.1.9
PING 192.168.1.9 (192.168.1.9) 56(84) bytes of data.
64 bytes from 192.168.1.9: icmp_seq=1 ttl=128 time=0.718 ms
64 bytes from 192.168.1.9: icmp_seq=2 ttl=128 time=0.646 ms
^C
--- 192.168.1.9 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1033ms
rtt min/avg/max/mdev = 0.646/0.682/0.718/0.036 ms
pcv@pc:~$