Linux下的网络配置
一、认识IP
1、什么是IP ADDRESS
全称(internet protocol ADDRESS )意思是网络进程地址。
IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他的地址,这样邮递员才能把信送到。
计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。
只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。
2、IP的表示
ip是由32个01组成
11111110.11111110.11111110.11111110 = 254.254.254.254
3、子网掩码(分为网络位和主机位)
用来划分网络区域
子网掩码非0的位对应的ip上的数字表示这个ip的网络位
子网掩码0位对应的数字是ip的主机位
网络位表示网络区域
主机位表示网络区域里某台主机
4、Ip通信判定
网络位一致,主机位不一致的2个IP可以直接通讯
172.25.254.1/24 子网掩码24=255.255.255.0
网络位 / 子网掩码
172.25.254.2/24
172.25.0.1/16 子网掩码16=255.255.0.0
GATEWAY PREFIX
二、网络设定
网络设定工具
ping ##检测网络是否通畅
1、 ifconfig 查看或设定网络接
ifconfig device ip/24 进行设定IP(暂时设定)
device:网络接口,可以为eth0,eth
ifconfig device down /up 关闭/开启IP
2、 ip addr检测或设定网络IP
ip addr 检测或设定网络接口
ip addr show 检测
ip addr add ip/24 dev device 设定 (暂时设定IP)
ip addr flush eth0 更改ip(刷空之前所有的ip)
"注意: device的名字一个物理事实,是啥名字就是啥,eth0/eth1"
3、图形设置IP(永久)
nm = NetworkManager,图形方式改了ip重启网络(有可能)不生效
nm-connection-editor 进行网络设定
systemctl stop NetworkManager 关闭网络管理
systemctl restart network 重启
systemctl start NetworkManager
nmtui命令进行设定
丑一点的图形化界面,其实类似于nm-connection-editor
4、命令方式设定网络
systemctl start NetworkManager必须开启网络管理
nmcli device connect eth0 启用eth0网卡
nmcli device disconnect eth0 关闭eth0网卡
nmcli device show eth0 查看网卡信息
nmcli device status eth0 查看网卡服务接口信息
用nm-connection-editor改名称为hello
nmcli connection show 查看网络
nmcli connection down hello 关闭名称为hello网卡
nmcli connection up hello 启用名称为hello网卡
nmcli connection delete hello 删除
nmcli 设定网卡
nmcli connection add type ethernet con-name hello ifname eth0 ip4 172.25.254.100/24
对应nm-connection-editor来写:图形化界面建立的步骤就是;
add type ethernet(以太网类型)->con-name hello(网络名称)->ifname eth0(网端)->ip4 172.25.254.100/24
nmcli connection modify westos ipv4.method auto
修改网络ip为动态分配(即DHCP服务)作用是:集中管理,分配IP地址,使主机动态获得IP地址,GATEWAY地址,DNS服务器地址信息、有效的提升地址的利用率。
nmcli connection modify hello ipv4.method manual
nmcli connection modify hello ipv4.addresses 172.25.254.200/24 ##直接将westos的地址修改为新的地址
注意:静态地改为动态地址,直接在后边加auto
动态地址改为静态地址,得先将他修改成一个静态地址,然后再进行manual
5、管理网络配置文件(文本设置)
/etc/sysconfig/network-scripts/ 在这个目录上创建
网络配置文件的名命规则
ifcfg-xxxx
DEVICE=xxx 设备名称
BOOTPROTO=dhcp|static|none 设备工作方式
ONBOOT=yes 网络服务开启时自动激活网卡
IPADDR= IP地址
PREFIX=24子网掩码(方式1)
NETMASK=255.255.255.0 子网掩码(方式2)
NAME= 接口名称(可有可无)
#nmcli connection delete hello先删除,再添加(删除的是配置文件)
示例:一个网卡配置一个IP:
静态网络设定文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=172.25.254.223
NETMASK=255.255.255.0
BOOTPROTO=none
NAME=hello 加与不加在图形化看区别,配置文件名字
设置完毕后
systemctl restart network --重启网络服务
一块网卡上配置多个IP:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPADDR0=172.25.254.223
NETMASK0=255.255.255.0
BOOTPROTO=none
NAME=hello
IPADDR1=172.25.0.100
PREFIX1=24
添加完新的IP地址后:
systemctl restart network 重启网络服务
"路由器"的作用:
由于不在同一网段的两个ip地址不能通信 但现实是2的32次方有限,因此ip地址有限,不可能每个人分一个ip地址, 我们现在想让不同网段的主机进行通信 ,用1.1.1.236主机连接 172.25.254.36主机必须在中间加一个双网卡主机 ,该主机具备内核路由功能
和地址伪装功能,这个中间的主机就叫做路由器 route ,因此搭建路由器,可以实现两个不同网段的主机通信 。
网关:
网关(Gateway),将两个使用不同协议的网络段连接在一起的设备。
三、网络配置
如果Linux系统连有无线网的时候,可以直接上网那么如何让虚拟机进行上网呢??
我们可以通过搭建路由器和设置网关使虚拟机通过真机上网了
原理和上面的一样
虚拟机只有一个ip,真机有两个ip,
思路:在真机上有两个网关,一个是自己的内网,一个是与外界相连的网络,我们需要将我们的虚拟机的网关跟内网的ip一样,查看真机的ip,同时将真机上设置路由和伪装功能开启,实现路由器作用。
步骤一:把真实主机变成路由器
就三个步骤:防火墙,路由功能是否开启,地址伪装功能
命令:(1)先看防火墙是否是开启状态,systemctl status firewalld如未开启,必须将其开启,
(2)在真机的shell输入sysctl -a | grep ip_forward查看路由功能是否为1,
(3)在真机的shell输入firewall-cmd --list-all查看masquerade:由no改为yes(firewall-cmd --add-masquerade这个命令只是暂时将其改为yes,伪装地址功能开启)
systemctl status firewalld 展示防火墙信息,是否开启
systemctl restart firewalld 如果没开启,运行这个命令开启
如果没开启则用命令:
firewall-cmd --add-masquerade (暂时添加防火墙信息)添加
firewall-cmd --permanent --add-masquerade 永久添加防火墙信息,开启其地址伪装功能
firewall-cmd --reload 重新加载
systemctl start firewalld 开启防火墙
(2)、sysctl -a | grep ip_forward 查看路由功能是否开启
如果:ipv4.ip_forward=0
vim /etc/sysctl.conf
将ipv4.ip_forward=1
否则进行下一步
1为允许网络
0为不允许
firewall-cmd --list
firewall-cmd --reload
firewall-cmd --list-all
步骤二:设定虚拟机的网关--在虚拟机中做
命令:(1)改掉自己的ip的网络位和自己的网关,cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0(在修改时,如果加数字,全部都加数字)
vim /etc/sysconfig/network(gateway)
(2)重启系统systemctl restart network
(3)查看网关和ip是否修改成功
虚拟机网关设置成和主机IP一样。
方法一:(命令设置)
vim /etc/sysconfig/network ##全局网关,针对所有没有设定网关的网卡生效
GATEWAY=172.25.254.250
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY0=172.25.254.250 ##当网卡中设定的IP有多个时(eth0/eth1),指定对于那个IP生效
GATEWAY=172.25.254.250 ##当网卡中设定的IP只有一个时
方法二:(图形设置)
一定一定,设置完后要-->>> systemctl restart network 重启动网络
route -n 查看网关
注意!! 虚拟机网卡有问题就删了重新加
用命令virt-manager打开虚拟机管理,删除网卡
可能出现的问题:
问题一:当我们虚拟机ping不通真机时,网关没有问题(原因:真机网络可能重启过),所以在真机上重新配置一次。
步骤: 在真机的shell输入virt-manager,选择“灯泡”,将真实的物理网卡硬件enp0s25的virtio先remove,然后添加一个新的virtio.
或者查看cd /etc/sysconfig/network-scripts/中间是否与有多于文件,不能有多于文件(在我们连接wifi后,系统可能会自动产生多余文件,需要将其删除。)(当配置时,如果NIC出现问题,用这个方法)
-----在真机网络重启后,需要重新检查路由和伪装功能是否完好,这个也是当我们可以在真机上ping通网络,虚拟机ping通真机的ip,却ping不通网络时的问题。(desktop虚拟机上不了网1、查网关,2、ping网关,3、查真机,4、查路由和伪装功能)
问题二:
当我们真机ping不通网络时,查看网关时,如果自己所需的网关前面有多余的网关时,需要将多余网关删除,route del dafault。
当虚拟机可以上网时,在虚拟机里面连接ping www.taobao.com连接不了,
原因就是它只能识别IP地址,域名识别不了
此时便引入DNS服务
四、设定dns(domain name server == 域名解析服务 解析就是把域名变成IP)
1、vim /etc/hosts 本地解析文件 ----此时只能ping上本地文件里的域名
必须手动加上
ip 域名
220.181.111.188 www.baidu.com
2、vim /etc/resolv.conf dns的指向文件 dns服务专门做解析服务
nameserver 114.114.114.114 ##当需要某个域名的IP地址时去问114.114.114.114
vim /etc/sysconfig/network-scripts/ifcfg-eth0/eth1
DNS1=114.114.114.114
注意:
当网络工作模式为dhcp时
系统会自动获得ip 网关 dns
那么/etc/resolv.conf会被获得到的信息修改
如果不需要获得dns信息
在网卡配置文件中加入
PEERDNS=no
3、设定解析的优先级
系统默认:
/etc/hosts > /etc/resolv.conf
本地解析 > DNS服务
但是可以通过修改nsswitch文件来修改二者的优先级
vim /etc/nsswitch.conf
39 hosts: files dns ##/etc/hosts优先
vim /etc/nsswitch.conf
39 hosts: dns files ##/etc/resolv.conf dns指向优先