目录
1.ifconfig 网络参数
ifconfig 主要是可以手动启动、观察与修改网络接口的相关参数
[root@linux ~]# ifconfig {interface} {up|down} <== 观察与启动接口
[root@linux ~]# ifconfig interface {options} <== 设置与修改接口
参数:
Interface,网卡接口代号,包括 eth0、eth1、ppp0 等
Options,可以接的参数,包括如下:
Up或down,启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)
mtu,可以设置不同的 MTU 数值,例如MTU 1500 (单位为 byte)
netmask,就是子屏蔽网络
broadcast,就是广播地址
范例:
范例一:观察所有的网络接口(直接输入 ifconfig)
[root@linux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.10.100 Bcast:192.168.10.255
Mask:255.255.255.0
inet6 addr: fe80::20f:eaff:fe73:682/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3439 errors:0 dropped:0 overruns:0 frame:0
TX packets:2735 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:646935 (631.7 KiB) TX bytes:562313 (549.1 KiB)
Interrupt:209 Memory:fb000000-0
一般来说,直接输入 ifconfig 就会列出目前已经被启动的卡,不论这个卡是否有设置 IP,都会被显示出来。而如果是输入 ifconfig eth0,则会显示出这个接口的相关数据,而不管该接口是否启动。所以,如果你想要知道某个网卡的 Hardware Address,直接输入“ifconfig "网络接口代号"”即可。至于上述代码中出现的各项数据是这样的(数据排列由上而下、由左而右)。
eth0:网卡的代号,也有 lo 这个 loopback。
HWaddr:网卡的硬件地址,习惯称为 MAC。
inet addr:IPv4 的 IP 地址,后续的 Bcase、Mask 分别代表的是 Broadcast 与 Netmask。
inet6 addr:是 IPv6 的版本的 IP,我们没有使用,所以略过。
RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets 代表数据包数、errors 代表数据包发生错误的数量、dropped 代表数据包由于有问题而遭丢弃的数量等。
TX:与 RX 相反,为网络由启动到目前为止的传送情况。
collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。
txqueuelen:代表用来传输数据的缓冲区的储存长度。
RX Bytes、TX Bytes:总传送、接收的字节总量。Interrupt、Memory:网卡硬件的数据,IRQ 岔断与内存地址。
2.ifup和ifdown
实时地手动修改一些网络接口参数,可以利用 ifconfig 来实现,如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-scripts里面的 ifcfg-ethx 等文件的设置参数来启动的话,那就得要通过 ifdown 或 ifup 来实现了。
[root@linux ~]# ifup {interface}
[root@linux ~]# ifdown {interface}
[root@linux ~]# ifup eth0
ifup 与 ifdown 真是太简单了。这两个程序其实是 script 而已,它会直接到 /etc/ sysconfig/network-scripts 目录下搜索对应的配置文件,例如 ifup eth0,它会找出 ifcfg-eth0 这个文件的内容,然后加以设置。关于 ifcfg-eth0 的设置请参考下面的说明。
不过,由于这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定 ifcfg-ethx 是否真的存在于正确的目录内,否则会启动失败。另外,如果以 ifconfig eth0 来设置或者是修改了网络接口后,就无法再以 ifdown eth0 的方式来关闭了。因为 ifdown 会分析比较目前的网络参数与 ifcfg-eth0 是否相符,不符的话,就会放弃这次操作。因此,使用 ifconfig 修改完毕后,应该要以 ifconfig eth0 down 才能够关闭该接口。
3.CentOS7网络配置相关文件
/etc/resolv.conf # DNS配置文件
/etc/hosts #主机名到IP地址的映射 ,不该主机名基本不会动他。
/etc/sysconfig/network #所有的网络接口和路由信息,网关只有最后一个有效。
/etc/sysconfig/network-script/ifcfg- #每一个网络接口的配置信息
每一个网卡只能使用一个配置文件,当有多个配置文件时,后面读取的配置文件信息会覆盖前面的配置信息。所以,一个网卡最好只写一个配置文件。或者之设置一个文件开机自启动,同时/etc/sysconfig/network-script/ifcfg-中不要写网关信息,交给/etc/sysconfig/network来配置。
4.CentOS7默认网卡接口配置文件
TYPE=Ethernet # 网卡类型:为以太网
PROXY_METHOD=none # 代理方式:关闭状态
BROWSER_ONLY=no # 只是浏览器:否
BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否
IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME=eno16777736 # 网络接口名称,即配置文件名后半部分。
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE=ens33 # 网卡设备名称
ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置
HWADDR="00:0C:29:EB:90:72" # 网卡的物理地址
5.补充命令
ip [选项] 操作对象{link|addr|route...}
# ip addr show # 显示网卡IP信息
# ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
# ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址
# ip link show # 显示网络接口信息
# ip link set eth0 up # 开启网卡
# ip link set eth0 down # 关闭网卡
# ip link set eth0 promisc on # 开启网卡的混合模式
# ip link set eth0 promisc offi # 关闭网卡的混个模式
# ip link set eth0 txqueuelen 1200 # 设置网卡队列长度
# ip link set eth0 mtu 1400 # 设置网卡最大传输单元
#ip route show 或 ip route list 或 route -n # 查看路由(网关)信息
# ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
# ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254
# ip route del 192.168.4.0/24 # 删除192.168.4.0网段的网关
# ip route del default # 删除默认路由
6.总结:
克隆虚拟机经常会出现网络问题,一般都是新虚拟机的mac地址问题,从设置->网络适配器->高级中查看到新的mac地址,
修改/etc/sysconfig/network-scripts/下配置文件中的HWADDR,重启网络systemctl start network,如果还是不行,就查看
/etc/udev/rules.d/70-persistent-ipoib.rules配置文件中的mac地址和name,或者直接删除