linux的网络配置命令和软件包及其相互间的关系

最早的时候配置linux网络都是从网上直接搜索“配置Ubuntu/CentOS网络”等,得到的答案也都是打开某个配置文件,怎么配置,怎么重启就OK了。但是从来没有想过这些配置文件到底是什么。随着工作经历的增长遇到越来越多的命令和名词,是时候梳理一下了。

首先我们要知道,内核不会读取任何配置文件去配置网卡(包括磁盘等),都是init进程启动的后续程序或脚本通过系统调用实现的。参考: How is the content of configuration files parsed on different Linux distributions?

 

使用命令行手动配置网络

涉及到两个软件包,net-tools 和 iproute2 (还有一个ethtool命令是用来配置网network interface controllers (NICs)的)
这些命令直接调用系统调用配置内核的网络参数。

net-tools软件包

它里边的命令还可以使用而且是我们最常用最熟悉的。但是这个软件包不更新了,有些过时了,建议使用iproute2软件包的命令。

 arp(8), hostname(1), ifconfig(8), ipmaddr, iptunnel, mii-tool(8), nameif(8), netstat(8), plipconfig(8), rarp(8), route(8) and slattach(8)

iproute2软件包

ip, ss, bridge, rtacct, rtmon, tc, ctstat, lnstat, nstat, routef, routel, rtstat, tipc, arpd, devlink

管理网络的软件包

NetworkManager 和  systemd-networkd ,他们都是会自动配置网络(DHCP方式)管理网络,具体他们做什么尚未了解清楚(自动侦听网络变化,配置网络?)。另外DHCP也有专门的服务,如dhcpcd, dhclient。

管理解析的软件包

resolvconf 和 systemd-resolved, 他们都会管理/etc/resolv.conf 管理系统的域名解析服务

Linux上解析域名比较复杂,解析过程还会引用/etc/nsswitch.conf的配置,决定查找的优先级。

开机辅助配置网络的软件包

ifupdown  或 netplan

ifupdown软件包包含ifup和ifdown,旧系统的/etc/init.d/下的网络脚本负责读取配置文件然后调用ifup,ifdown来配置网络。
centos 的配置文件在/etc/sysconfig/network-scripts/  , ubuntu的配置文件/etc/network/interfaces。

Ubuntu 新版改使用netplan去管理网络了,配置文件在/etc/netplan/xxxx.yaml, 这些配置文件的格式都是不同的。

同时提一下cloud-init,它能够对系统进行自动化配置,一般用于云服务器的自动化配置,虚拟机管理器会挂载对应的配置文件进入虚拟机,cloud-init利用配置文件进行配置,其中也包括配置网络的部分。

转载于:https://my.oschina.net/tinyhare/blog/3031158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值