当前位置: 首页 > article >正文

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

上面的文件配置了 loeth0eth1lo 配置为回环接口(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 $?

可以看到,上面的启动脚本通过 ifupifdown 工具来启停网口。它们都是用了 /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 配置工具用于网络接口的配置,通常会使用 systemdNetworkManager 来管理网络接口,而不是依赖 ifup/ifdownifconfig

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

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

3. 参考资料

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


http://www.kler.cn/a/454169.html

相关文章:

  • 五十七:RST_STREAM帧及常见错误码
  • LabVIEW软件项目设计方案如何制定
  • C 实现植物大战僵尸(一)
  • SLES网络
  • Vue.js 高级组件开发:设计模式与实践
  • STM32 高级 谈一下IPV4/默认网关/子网掩码/DNS服务器/MAC
  • 运动控制卡网络通讯的心跳检测之C#上位机编程
  • CSS系列(37)-- Overscroll Behavior详解
  • 论文解读 | EMNLP2024 一种用于大语言模型版本更新的学习率路径切换训练范式
  • 云上「算力浪费」,正在掣肘企业应用落地。
  • CSS系列(29)-- Scroll Snap详解
  • 【Python运维】自动化备份与恢复系统的实现:Python脚本实战
  • RCE常见姿势
  • 时序论文33|NIPS24借助大型语言模型的自回归时间序列预测器AutoTimes
  • mysql系列5—Innodb的缓存
  • 从零开始k8s-部署篇(未完待续)
  • linux Python环境部署
  • CAN201 Introduction to Networking(计算机网络)Pt.1 导论和应用层
  • [Java]合理封装第三方工具包(附视频)
  • 在 Vue3 项目中实现计时器组件的使用(Vite+Vue3+Node+npm+Element-plus,附测试代码)
  • 【视觉惯性SLAM:四、相机成像模型】
  • android+recyclerview+的内容缓存机制
  • 华为云国内版与国际版的主要区别解析
  • 解析交通事故报告:利用 PDF、AI 与数据标准化技术构建智能分析系统
  • idea 8年使用整理
  • ElasticSearch - 深入解析 Elasticsearch Composite Aggregation 的分页与去重机制