####linux下的网络配置###
1.什么是IP ADDRESS
internet protocol ADDRESS ##网络进程地址
ipv4
internet protocol version 4
ip是由32位组成,是由32个0和1组成
11111111.11111111.11111110.11111110 =
254.254.254.254
一个区域的集和叫网络位。
2.子网掩码
是用来划分网络区域的,上面非0的位对应的ip,上的数字表示这个ip的网络位。0位对应的数字是ip的主机位。
网络位表示网络区域
3.ip通信判定
172.25.254.1/24 ##前三个为网络位,后面的1为主机位
172.25.254.2/24 ##前两个可以连接
172.25.2.1/16 ##这个包含前面两个的地址,所以就可以和那两个链接,但是前面两个链接后面这个有可能会出问题
##前两位一样的其实是都可以链接的,只是有可能不稳定
##最后一个这个网络区域大,包含上面两个网络区域小的
4.网络设定工具(临时设定)
ping ##检测网络是否通畅 ping -c 10 -i 0.5 172.25.254.10 ##表示 ping 172.25.254.10 这个主机 -c 表示 ping 的次数,-i 表示 ping的时间间隔。
ifconfig ##查看或设定网络接口
ifconfig (device) ip/24 ##设定
ifconfig (device) down/up ##开启/关闭某接口
【device的名字是一个物理事实(有什么用什么) eth0是网卡名】
ip addr ##检测或这顶网络接口
ip addr show ##检测,查看
ip addr add ip/24 dev device ##设定ip没有ip的时候
ip addr change ip/24 dev device ##本来存在ip的时候
在linux中只要在一个网卡上配置的ip是同一个网段的,那么它有Primary IP和Secondary address的区分,反之只要不是同一个网段的ip那么都是Primary IP;primary 和secondary 的关系就是一条链上的吊链结构中上面的那条主链中的IP就是Primary IP,Secondary address是主链结点的子链结点中的IP,一 旦主链上一个节点被删除了,那么它的子链也将不复存在,随之被删除
5.图形方式设定ip
(1)nm-connection-editor
networkmanager记录网络状态的服务
关闭网络状态的服务关闭——>restart
network——>再开启记录服务
真正管理网络的是network
【如果关闭了图形(init3)就用不了这个】
(2)nmtui ##有没有图形都能用,在有图形时直接输入nmtui
6.命令的方式设定网络
(1)nmcli ##前提是networkmanager必须开启
Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。
NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。
可以用命令行工具 nmcli 来控制 NetworkManager
show显示网卡信息 status显示为谁工作的
nmcli device connect eth0 ##启用eth0网卡
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli device show eth0 ##显示网卡信息
nmcli device status eth0 ##查看网卡服务接口信息
nmcli connection show ##显示网卡接口信息
nmcli connection down student ##关闭网卡接口信息
nmcli connection up student ##开启网卡接口信息
nmcli connection delete student ##删除网卡接口信息
nmcli connection add type ethernet
con-name westos ifname eth0 ip4 172.25.254.100/24
##添加一个类型为以太网接口名称为westos网卡名称为eth0使用静态网络ipv4为以上的网络
nmcli connection modify student
ipv4.method auto ##更改ipv4的网络连接方式为动态的
nmcli connection modify student
ipv4.method manual ##更改ipv4的网络连接方式为静态的
nmcli connection modify student
ipv4.addresses 172.25.254.210/24 ##更改ipv4的地址是172.25.254.210/24
7.管理网络配置文件(以编辑文件的方式)
(1)网络配置目录
/etc/sysconfig/network-scripts/
(2)网络配置文件的命名规则
ifcfg-xxx
DEVICE=eth0 ##设备名称
BOOTPROTO=dhcp(动态)|static|none(静态)
##设备的工作方式
ONBOOT=yes ##网络服务开启时自动激活网卡
IPADDR= ##IP地址
PREFIX=24 ##子网掩码
或者NETMASK=255.255.255.0 ##子网掩码
NAME= ##接口名称
示例:静态网络设定文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.25.254.10
PREFIX=24
NAME=student
systemctl restart network
注意:同一个网卡设置多个ip
ifconfig eth0 ##只能查看0的那个配置文件
ip addr show ##想要查看一个网卡全部的ip,用这个命令
8.lo回环接口
回环接口————类似于人的神经————127.0.0.1————localhost
主机内部,当一个服务只开在回环接口,只能自己链接。
0.0.0.0表示都能用
9.网关
假如虚拟机的IP为172.25.254.110,想要上网,而公网的IP为183.232.231.172.两个不在一个网域内,所以不能连接,需要一个转换器(toute路由器,路由器里面有很多区域的ip),虚拟机给路由器一个IP为172.25.254.110的包,然后路由器将这个包伪装一个新的IP为183.233.231.172的包发给公网。因为网络位相同所以可以连接。这个过程叫SNAT(SNAT = source network address transform)
(DNAT =directory network address transform 目的地地址转换 )
(1)把真实主机变成路由器
systemctl stop libvirtd
systemctl restart firewalld ##火墙打开才会有地址伪装功能
systemctl start libvirtd
firewall-cmd --list
firewall-cmd --permanent
--add-masquerade(地址伪装)
firewall-cmd --reload
firewall-cmd --list-all
当出现masquerade:yes的时候,地址伪装功能开启,真实主机变成路由器
(2)设定虚拟机的网关(虚拟机通过哪一个IP链接路由器)
vim /etc/sysconfig/network ##全局网关(针对所有没有设定网关的网卡生效)
GATEWAY=172.25.254.10
vim
/etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY0=172.25.254.10 ##当网卡中设定的IP有多个的时候
GATEWAY=172.25.254.10 ##当网卡中设定的IP有单个的时候
systemctl restart network
route -n ##查看网关是否添加上
【真机的网关查看:ifconfig bro0】
【br0和虚拟机链接 wlp3s0和公网链接】
###当全部步骤做完后,ping主机的br0的IP的时候平不到,有可能是网卡的问题,在真实主机上, 1)输入virt-manager 2)点击desktop 3)点击灯泡
4)将原本的网卡remove 5)add重新添加一个network,选择virtio
完成以后再ping主机
###当地址伪装,虚拟机也能ping通真实主机,那就看内核路由功能是否打开,在真机上, 1)vim /etc/sysctl.conf
2)sysctl -a | grep ip_forward 会发现net.ipv4.ip_forward=0(要更改这个为1) 3)sysctl
-p 会更改成net.ipv4.ip_forward=1
以上是应为自己知道网关是多少加在文件中的,然而不知道网关,就用不了上面的方法
10.设定DNS
DNS = Domain name server == 域名解析服务
##解析就是把域名变成IP
DNS 地址解析 把网址(域名)和IP联系到一起,通过网络共享
谁提供地址解析,谁就是我的DNS(提供解析的ip)
(1)vim /etc/resolv.conf ##DNS的指向文件
nameserver 114.114.114.114
##当需要某个域名的IP地址时去问114.114.114.114
【即改即生效】
(2)vim /etc/hosts/ 本地解析文件(自己告诉自己,在文件添加baidu就是某一个ip)
ip 域名
220.181.111.181 www.baidu.com
(3)vim /etc/sysconfig/network-scripts/ifcfg-xxx
DNS1=114.114.114.114
注意:
当网络工作模式为dhcp时,系统会自动获得:ip 网关 DNS
那么/etc/resolv.conf会被获取到的信息修改
如果不需要获得DNS信息,在网卡配置文件中加入
PREEDNS=no
11.设定解析DNS的优先级
系统默认:
/etc/hosts > /etc/resolv.conf
修改优先级:
vim /etc/nsswitch.conf
39.hosts: files dns ##/etc/hosts优先
39.hosts: dns files
##/etc/resolv.conf dns指向优先
12.dhcp配置服务
在server服务器上设置:
(1)yum install dhcp -y
(2)vim /etc/sysconfig/network-scripts/ifcfg-eth0
改成none
(3)systemctl restart network
(4)vim /etc/yum.repos.d/rhel_dvd.repo
baseurl:http://172.25.254.250/rhel7
(5)ping 172.25.254.250
(6)yum clean all
(7)yum repolist
(8)vim /etc/dhcp/dhcpd.conf
(9)cp /usr/share/doc/dhcp*/dhcp.conf.example /etc/dhcp/dhcpd.conf
(10)vim dhcpd.conf
##27和28以及35行以后删除
##195 option domain-name "student.com" 域名
##196 option domain-name-servers 114.114.114.114 DNS
##default-lease-time 600 默认租约期
##max-lease-time 7200 最长租约期
##subnet 172.25.254.0 netmask 255.255.255.0 { 子网设定 ## subnet 网络 netmask 子网掩码
range 172.25.254.160
172.25.254.200; IP地址池
option routers 172.25.254.250; 网关
}
(11)systemctl restart dhcpd
(12)systemctl stop firewalld
测试:
在client客户端上:
重新添加一块网卡,配置网络。
1.可以在图形界面: nm-connection-editor —> 将类型配置为 dhcp 模式 —> 保存 —> ifconfig 查看是否有分配的 ip
2.可以用命令行的方式: nmcli connection modify eth1 ipv4.method manual
结果:在网络工作模式是dhcp的主机中重启网络可以看到 IP GW DNS全部获取成功