linux虚拟机三种网络
1、NAT――网络地址转换 :默认使用VMnet8
- 原理:
NAT 是 Network address translate的简称。NAT技术应用在internet网关和路由器上,比如176.16.89.128这个地址要访问internet,它的数据包就要通过一个网关或者路由器,而网关或者路由器拥有一个能访问internet的ip地址,这样的网关和路由器就要在收发数据包时,对数据包的IP协议层数据进行更改(即 NAT),以使私有网段的主机能够顺利访问internet。此技术解决了IP地址稀缺的问题。同样的私有IP可以网关NAT 上网。
VMWare的NAT上网也是同样的道理,它在主机和虚拟机之间用软件伪造出一块网卡,这块网卡和虚拟机的ip处于一个地址段。同时,在这块网卡和主机的网络接口之间进行NAT。虚拟机发出的每一块数据包都会经过虚拟网卡,然后NAT,然后由主机的接口发出。
- VMware配置:
1、编辑–>虚拟网络编辑器–>更改设置–>VMnet8–>NAT模式–>NAT设置,设置虚拟机的网关,如192.168.0.2,即虚拟的路由器;
2、查看本机网络连接里VMnet8的ip,看是否与上面设置的网管冲突,冲突则改过来,如192.168.0.1;(此处遇到过坑)
3、设置每台虚拟机的ip,网关等,要求ip与网关在同一网段,且不能重复。后面有如何设置linux IP教程。
2、Brigde――桥接:默认使用VMnet0
- 原理
Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在"桥"上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然。这样,局域网A和B就无缝的在链路层连接起来了,在桥接时,VMWare网卡和物理网卡应该处于同一IP网段 当然要保证两个局域网没有冲突的IP.
VMWare 的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由VMWare软件虚拟了!当采用桥接时,VMWare会虚拟一块网卡和真正的物理网卡就行桥接,这样,发到物理网卡的所有数据包就到了VMWare虚拟机,而由VMWare发出的数据包也会通过桥从物理网卡的那端发出。
所以,如果物理网卡可以上网,那么桥接的软网卡也没有问题了,这就是桥接上网的原理了。
3、Host-Only――私有网络共享主机:默认使用VMnet1
提供的是主机和虚拟机之间的网络互访。只想让虚拟机和主机之间有数据交换,而不想让虚拟机访问Internet,就要采用这个设置了。
Host-only的条件下,VMWare在真正的Windows系统中,建立一块软网卡。这块网卡可以在网络连接中看到,一般是VMNET1,这块网卡的作用就是使Windows看到虚拟机的IP。
修改主机名
vim /etc/sysconfig/network
---------
NETWORKING=yes
HOSTNAME=node01
修改ip地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0
-----------
DEVICE=eth0 #设备名字
ONBOOT=yes #是否随系统启动而启动
BOOTPROTO=static (dhcp) # 网络参数配置方式
IPADDR=192.168.0.101 #ip地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.0.1 # 默认网关
DNS1=192.168.0.1 # DNS地址,建议与网关一致
DNS2=8.8.8.8
DNS服务器配置
vim /etc/resolv.conf
----------------------
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 192.168.4.1
netstat—查看网络连接情况
-a 所有, -n 数字, -r路由表,-l监听,-t TCP, -u UDP, -p 进程号
netstat -antput
----------------------------------------------------
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:875 0.0.0.0:* LISTEN 2262/rpc.rquotad
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1963/rpcbind
tcp 0 0 0.0.0.0:33073 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:40337 0.0.0.0:* LISTEN 2266/rpc.mountd
tcp 0 0 0.0.0.0:53586 0.0.0.0:* LISTEN 2010/rpc.statd
防火墙配置
# systemctl start firewalld 启动防火墙
# systemctl status firewalld 查看防火墙
1、查看防火墙端口列表
firewall-cmd --list-ports
2、添加指定端口tcp
firewall-cmd --zone=public --add-port=8080/tcp --permanent #开放8080/tcp端口
firewall-cmd --zone=public --add-port=10002-10010/tcp --permanent #开放10002-10010/tcp端口范围
添加指定端口udp
firewall-cmd --zone=public --add-port=9200/udp --permanent #开放9200/udp端口
firewall-cmd --zone=public --add-port=20015-20020/udp --permanent #开放20015-20020/udp端口范围
3、删除指定端口
firewall-cmd --zone= public --remove-port=19800/tcp --permanent #删除已开放的19880/tcp端口
firewall-cmd --zone= public --remove-port=9200-9300/udp --permanent #删除已开放的9200-9300/udp 端口范围
4、热加载防火墙,使之生效
firewall-cmd --reload
5、指定某IP访问某端口
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.107" port protocol="tcp" port="3306" accept"
删除策略
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.107" port protocol="tcp" port="3306" accept"
6、指定某个网段访问某个端口范围
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="11.76.168.0/24" port protocol="udp" port="1-65535" accept"
删除策略
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="11.76.168.0/24" port protocol="tcp" port="1-65535" accept"
firewall-cmd --reload