Linux 网络配置基础

Linux 网络配置基础

目录1. 前言2. Linux 的网络配置2.1 传统的网络配置方法2.2 新的网络配置方法2.3 用 DHCP 客户端管理网络3. 参考资料

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。

2. Linux 的网络配置

2.1 传统的网络配置方法

Linux 下传统的网络通过目录 /etc/network 下的一系列文件进行配置,通常通过 /etc/network/interfaces 文件进行配置。如:

# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet dhcp

iface eth1 inet static

address 192.168.1.100

netmask 255.255.255.0

gateway 192.168.1.1

上面的文件配置了 lo,eth0,eth1:lo 配置为回环接口(loop),eth0 配置为通过 DHCP 协议来分配 IP,而 eth1 使用静态 IP。那么谁使用了 /etc/network/interfaces ?答案是 ifupdown 工具包。使用 /etc/network/interfaces 的情形下,在 /etc/init.d 目录下会对应有一个启动网络的脚本,如 /etc/init.d/S28network :

#!/bin/sh

#

# Start the network....

#

# Debian ifupdown needs the /run/network lock directory

mkdir -p /run/network

case "$1" in

start)

printf "Starting network: "

/sbin/ifup -a

[ $? = 0 ] && echo "OK" || echo "FAIL"

;;

stop)

printf "Stopping network: "

/sbin/ifdown -a

[ $? = 0 ] && echo "OK" || echo "FAIL"

;;

restart|reload)

"$0" stop

"$0" start

;;

*)

echo "Usage: $0 {start|stop|restart}"

exit 1

esac

exit $?

可以看到,上面的启动脚本通过 ifup 和 ifdown 工具来启停网口。它们都是用了 /etc/network/interfaces 配置文件:

# strace ifdown eth0

[......]

openat(AT_FDCWD, "/etc/network/interfaces", O_RDONLY) = 3

[......]

# strace ifup eth0

[......]

openat(AT_FDCWD, "/etc/network/interfaces", O_RDONLY) = 3

[......]

顺便说一句,ifconfig 和 /etc/network/interfaces 配置文件没有任何关系,ifconfig 的任何修改都是临时的。

2.2 新的网络配置方法

现代系统(如 Ubuntu 18.04 及以后),使用 netplan 配置工具用于网络接口的配置,通常会使用 systemd 或 NetworkManager 来管理网络接口,而不是依赖 ifup/ifdown 或 ifconfig。

ifconfig 仍然可以用来查看网络状态和临时配置,但网络接口的配置会通过 netplan 配置文件来进行管理。

2.3 用 DHCP 客户端管理网络

当系统中使用 DHCP 客户端(如 dhcpcd)时,默认配置下会通过 DHCP 协议为系统中所有网络接口分配 IP,但也可以显式的将接口配置为静态 IP,或者将接口排除在 DHCP 客户端的管理之外。以 dhcpcd 为例来说明如何将网络接口配置为静态 IP。可以通过修改 dhcpcd 的配置文件 /etc/dhcpcd.conf,将 eth1 排除在 dhcpcd 的管理之外:

denyinterfaces eth1

或者,将 eth1 配置为静态 IP:

interface eth1

static ip_address=192.168.1.100/24

static routers=192.168.1.1

static domain_name_servers=8.8.8.8

最好不要同时使用 ifupdown 和 dhcp 客户端工具,如果同时使用,也不要让同一个网络接口同时被 ifupdown 和 dhcp 客户端工具管理。

3. 参考资料

[1] https://manpages.debian.org/buster/dhcpcd5/dhcpcd.conf.5.en.html

相关文章

六种other的不同用法
bat365台湾入口

六种other的不同用法

⌛ 06-30 👁️‍🗨️ 6404
快递损坏如何处理,怎么赔偿?
365bet国内

快递损坏如何处理,怎么赔偿?

⌛ 07-15 👁️‍🗨️ 5964
《兴,百姓苦!亡,百姓苦》什么意思|全诗|出处|赏析
365骑士版app下载

《兴,百姓苦!亡,百姓苦》什么意思|全诗|出处|赏析

⌛ 08-09 👁️‍🗨️ 2161
360浏览器怎么删除插件?360浏览器插件删除步骤介绍
365bet国内

360浏览器怎么删除插件?360浏览器插件删除步骤介绍

⌛ 07-24 👁️‍🗨️ 7360
蔚来系统升级需要多长时间
365骑士版app下载

蔚来系统升级需要多长时间

⌛ 08-13 👁️‍🗨️ 9177
农民歌手朱之文现状如何,54岁转型新道路,善恶有报引热议
365骑士版app下载

农民歌手朱之文现状如何,54岁转型新道路,善恶有报引热议

⌛ 07-26 👁️‍🗨️ 7718