0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统中网络配置详解

马哥Linux运维 ? 来源:马哥Linux运维 ? 2025-07-17 11:01 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

网络配置是Linux系统运维中的核心技能之一。正确理解和配置子网掩码、网关等网络参数,直接影响系统的网络连通性和性能。本文将深入探讨Linux系统中网络配置的方方面面,为运维工程师提供全面的技术指导。

第一章:网络基础理论

1.1 IP地址与子网掩码的关系

IP地址是网络中设备的唯一标识,由32位二进制数组成,通常以点分十进制表示。子网掩码用于确定IP地址的网络部分和主机部分。

IP地址分类:

? A类:1.0.0.0 - 126.255.255.255,默认子网掩码255.0.0.0

? B类:128.0.0.0 - 191.255.255.255,默认子网掩码255.255.0.0

? C类:192.0.0.0 - 223.255.255.255,默认子网掩码255.255.255.0

1.2 CIDR表示法

CIDR(Classless Inter-Domain Routing)使用斜杠后的数字表示网络前缀长度:

? /24 等价于 255.255.255.0

? /16 等价于 255.255.0.0

? /8 等价于 255.0.0.0

1.3 网关的作用

网关是连接不同网络的设备,通常是路由器。当数据包的目标不在本地网络时,系统将数据包发送到默认网关进行转发。

第二章:Linux网络配置文件详解

2.1 网络配置文件结构

Linux系统中,网络配置文件的位置和格式因发行版而异:

RedHat/CentOS系列:

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network
/etc/resolv.conf

Debian/Ubuntu系列:

/etc/network/interfaces
/etc/netplan/(Ubuntu 18.04+)
/etc/resolv.conf

2.2 RedHat/CentOS网络配置

网卡配置文件格式(/etc/sysconfig/network-scripts/ifcfg-eth0):

# 基本配置
DEVICE=eth0          # 网卡设备名
TYPE=Ethernet         # 连接类型
ONBOOT=yes          # 开机启动
BOOTPROTO=static       # 静态IP配置

# IP地址配置
IPADDR=192.168.1.100     # IP地址
NETMASK=255.255.255.0    # 子网掩码
PREFIX=24          # 网络前缀(可选,与NETMASK二选一)
GATEWAY=192.168.1.1     # 默认网关

# DNS配置
DNS1=8.8.8.8         # 首选DNS
DNS2=8.8.4.4         # 备用DNS

# 高级配置
HWADDR=005634:56   # MAC地址
USERCTL=no          # 普通用户控制
NM_CONTROLLED=no       # NetworkManager控制
DEFROUTE=yes        # 默认路由

DHCP配置示例:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR=005634:56

2.3 Debian/Ubuntu网络配置

传统配置文件(/etc/network/interfaces):

# 回环接口
auto lo
iface lo inet loopback

# 静态IP配置
auto eth0
iface eth0 inet static
  address 192.168.1.100
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameservers 8.8.8.8 8.8.4.4
  dns-search example.com

# DHCP配置
auto eth1
iface eth1 inet dhcp

# 多IP配置
auto eth0:0
iface eth0:0 inet static
  address 192.168.1.101
  netmask 255.255.255.0

Netplan配置(Ubuntu 18.04+):

network:
version:2
renderer:networkd
ethernets:
 eth0:
  addresses:
   -192.168.1.100/24
  gateway4:192.168.1.1
  nameservers:
   addresses:[8.8.8.8,8.8.4.4]
   search:[example.com]
  dhcp4:false

第三章:子网掩码深入解析

3.1 子网掩码的二进制表示

子网掩码用二进制1表示网络部分,用0表示主机部分:

IP地址:  192.168.1.100 = 11000000.10101000.00000001.01100100
子网掩码: 255.255.255.0 = 11111111.11111111.11111111.00000000
网络地址: 192.168.1.0  = 11000000.10101000.00000001.00000000
广播地址: 192.168.1.255 = 11000000.10101000.00000001.11111111

3.2 子网划分实例

将192.168.1.0/24网络划分为4个子网:

原网络:192.168.1.0/24 (256个地址)
新掩码:/26 (64个地址每个子网)

子网1:192.168.1.0/26  (192.168.1.1 - 192.168.1.62)
子网2:192.168.1.64/26 (192.168.1.65 - 192.168.1.126)
子网3:192.168.1.128/26 (192.168.1.129 - 192.168.1.190)
子网4:192.168.1.192/26 (192.168.1.193 - 192.168.1.254)

3.3 VLSM(可变长子网掩码)

VLSM允许在同一个主网络中使用不同长度的子网掩码:

# 服务器网段(需要30个地址)
192.168.1.0/27  # 掩码255.255.255.224

# 工作站网段(需要100个地址)
192.168.1.128/25 # 掩码255.255.255.128

# 点对点链路(需要2个地址)
192.168.1.252/30 # 掩码255.255.255.252

第四章:网关配置与路由管理

4.1 默认网关配置

临时配置:

# 添加默认网关
route add default gw 192.168.1.1

# 或使用ip命令
ip route add default via 192.168.1.1

# 删除默认网关
route del default gw 192.168.1.1
ip route del default via 192.168.1.1

永久配置:

# RedHat/CentOS
echo"GATEWAY=192.168.1.1">> /etc/sysconfig/network-scripts/ifcfg-eth0

# Debian/Ubuntu
echo"gateway 192.168.1.1">> /etc/network/interfaces

4.2 静态路由配置

添加静态路由:

# 访问10.0.0.0/8网络通过192.168.1.254网关
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.254

# 使用ip命令
ip route add 10.0.0.0/8 via 192.168.1.254

# 指定出口接口
ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0

永久静态路由配置:

RedHat/CentOS创建路由文件:

# /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/8 via 192.168.1.254
172.16.0.0/16 via 192.168.1.253

Debian/Ubuntu在interfaces文件中添加:

auto eth0
iface eth0 inet static
  address 192.168.1.100
  netmask 255.255.255.0
  gateway 192.168.1.1
  up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.254
  down route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.254

4.3 路由表管理

查看路由表:

# 传统命令
route -n
netstat -rn

# 现代命令
ip route show
ip route show table main

路由表输出解析:

Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
0.0.0.0     192.168.1.1   0.0.0.0     UG  100  0    0 eth0
192.168.1.0   0.0.0.0     255.255.255.0  U   100  0    0 eth0

标志含义:

? U:路由有效

? G:通过网关

? H:目标是主机

? D:动态路由

? M:修改路由

第五章:网络诊断与故障排除

5.1 网络连通性测试

基本连通性测试:

# 测试本地网络
ping 192.168.1.1

# 测试外网连通性
ping 8.8.8.8
ping www.google.com

# 测试特定端口
telnet 192.168.1.1 80
nc -zv 192.168.1.1 80

5.2 路由追踪

# 追踪数据包路径
traceroute 8.8.8.8
tracepath 8.8.8.8

# 使用mtr进行持续监控
mtr 8.8.8.8

5.3 网络配置检查

检查网络接口状态:

# 查看接口信息
ifconfig
ip addr show

# 查看接口统计
ip -slinkshow

# 检查网络服务状态
systemctl status networking  # Debian/Ubuntu
systemctl status network    # RedHat/CentOS

5.4 常见故障排除

网络无法连接故障排除流程:

1.检查物理连接:

# 检查网线连接状态
ethtool eth0

2.检查网络配置:

# 验证IP配置
ip addr show eth0

# 检查路由表
ip route show

3.检查DNS解析:

# 测试DNS解析
nslookup www.google.com
dig www.google.com

4.检查防火墙:

# 查看防火墙状态
iptables -L
systemctl status firewalld

第六章:高级网络配置

6.1 网络绑定(Bonding)

配置网络绑定:

# 创建绑定接口配置
# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BONDING_OPTS="mode=1 miimon=100"

# 配置从属接口
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

6.2 VLAN配置

配置VLAN接口:

# 创建VLAN接口
# /etc/sysconfig/network-scripts/ifcfg-eth0.100
DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
VLAN=yes

6.3 桥接配置

配置网络桥接:

# 创建桥接接口
# /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
DELAY=0

# 配置桥接成员
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0

第七章:网络安全配置

7.1 防火墙配置

iptables基本配置:

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP和HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 默认拒绝
iptables -P INPUT DROP

7.2 网络访问控制

使用TCP Wrappers:

# /etc/hosts.allow
sshd: 192.168.1.0/24
httpd: ALL

# /etc/hosts.deny
ALL: ALL

第八章:性能优化与监控

8.1 网络性能调优

内核参数优化:

# /etc/sysctl.conf
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 65536 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = bbr
net.core.netdev_max_backlog = 5000

8.2 网络监控

实时监控网络流量:

# 使用iftop监控
iftop -i eth0

# 使用nethogs监控进程流量
nethogs eth0

# 使用ss查看连接状态
ss -tuln

第九章:自动化网络配置

9.1 脚本化网络配置

网络配置脚本示例:

#!/bin/bash
# network-config.sh

INTERFACE="eth0"
IP_ADDRESS="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

# 检查系统类型
if[ -f /etc/redhat-release ];then
 # RedHat/CentOS配置
 cat> /etc/sysconfig/network-scripts/ifcfg-$INTERFACE< /etc/network/interfaces <

9.2 Ansible网络配置

Ansible playbook示例:

---
-name:Configurenetworkinterface
hosts:servers
become:yes
vars:
 interface:eth0
 ip_address:192.168.1.100
 netmask:255.255.255.0
 gateway:192.168.1.1
 
tasks:
 -name:Configurenetworkinterface(RedHat/CentOS)
  template:
   src:ifcfg-interface.j2
   dest:"/etc/sysconfig/network-scripts/ifcfg-{{ interface }}"
  when:ansible_os_family=="RedHat"
  notify:restartnetwork
  
 -name:Configurenetworkinterface(Debian/Ubuntu)
  template:
   src:interfaces.j2
   dest:/etc/network/interfaces
  when:ansible_os_family=="Debian"
  notify:restartnetworking
  
handlers:
 -name:restartnetwork
  service:
   name:network
   state:restarted
   
 -name:restartnetworking
  service:
   name:networking
   state:restarted

第十章:云环境网络配置

10.1 AWS网络配置

AWS实例网络配置:

# 配置弹性IP
aws ec2 associate-address --instance-id i-1234567890abcdef0 --public-ip 203.0.113.12

# 配置安全组
aws ec2 authorize-security-group-ingress 
  --group-id sg-12345678 
  --protocol tcp 
  --port 80 
  --cidr 0.0.0.0/0

10.2 Docker网络配置

Docker容器网络:

# 创建自定义网络
docker network create --driver bridge 
  --subnet=192.168.100.0/24 
  --gateway=192.168.100.1 
  mynetwork

# 启动容器并指定网络
docker run -d --name web 
  --network mynetwork 
  --ip 192.168.100.10 
  nginx

结语

Linux网络配置是运维工程师必须掌握的核心技能。通过深入理解子网掩码、网关的工作原理和配置方法,结合实际的故障排除经验,能够确保网络的稳定性和高效性。随着云计算和容器技术的发展,网络配置的复杂性不断增加,运维工程师需要持续学习和实践,才能应对各种网络挑战。

本文涵盖了从基础理论到高级配置的全面内容,希望能够为运维工程师提供有价值的参考。在实际工作中,建议结合具体的网络环境和业务需求,灵活运用这些知识和技能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11522

    浏览量

    214219
  • 网络
    +关注

    关注

    14

    文章

    7838

    浏览量

    91138
  • ip地址
    +关注

    关注

    0

    文章

    307

    浏览量

    18562

原文标题:Linux网络总是不通?一文搞懂子网掩码、网关配置的所有坑

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux LED子系统详解

    Linux LED子系统详解
    的头像 发表于 06-10 10:37 ?1922次阅读
    <b class='flag-5'>Linux</b> LED子<b class='flag-5'>系统</b><b class='flag-5'>详解</b>

    LInux系统网络配置过程

    Internet Protocol Address 网络进程地址 ipv4 internet protocol version 4 互联网协议的第四版。目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协
    发表于 07-12 07:49

    LAN在测试系统中网络配置

    系统开发者指南:LAN在测试系统中的使用:网络配置
    发表于 09-16 10:05

    Altium PCB设计中网络字体的大小怎么调节

    系统参数进行设置,有利于高效的执行各项命令,加快设计的进程。例如在AD PCB设计中网络字体的大小怎么调节的,是很多学员会经常问到的,接下来我们以AD19来讲一下操作教程。(图文详解见附件)
    发表于 11-14 10:55

    linux系统与uboot中网卡驱动的典型工作方式有哪几种

    linux系统中网卡驱动的典型工作方式有哪几种?uboot中网卡驱动的工作方式有哪几种?
    发表于 12-24 07:52

    Linux系统中网络I/O性能改进方法的研究

    选择并设计高效的网络I/O模型是改善服务器性能的关键。该文通过对Linux系统中几种网络I/O模型的分析和研究,提出3种改善网络I/O性能的
    发表于 04-09 09:41 ?28次下载

    实用的Linux网络配置工具netconf

    实用的Linux网络配置工具netconf 很多用户不使用Linux网络的原因是配置的复杂性与
    发表于 01-29 11:24 ?963次阅读

    linux-socket网络编程详解

    linux开发编程教程资料——linux-socket网络编程详解,感兴趣的小伙伴们可以看一看。
    发表于 08-23 16:23 ?0次下载

    Linux网络编程实例详解

    网络通讯教程学习之Linux网络编程实例详解
    发表于 09-01 14:55 ?0次下载

    linux下网卡配置详解

    linux下网卡配置详解
    发表于 12-15 22:38 ?0次下载

    Linux内核配置系统详解

    ,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解
    发表于 11-01 15:45 ?4次下载

    linux网络服务器配置基础

    要建立一个安全linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在
    发表于 11-07 15:21 ?0次下载

    如何验证Linux系统中网络端口通不通

    我们在 linux 系统网络调试中经常会遇到需要测试验证对应的端口是否正常的场景, 接下来讲解一下常用的方法。
    的头像 发表于 05-12 10:28 ?2619次阅读
    如何验证<b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>中网络</b>端口通不通

    linux配置网卡的ip及相关网络参数

    Linux系统中,配置网络参数包括配置网卡的IP地址、子网掩码、网关、DNS等。本文将以详尽、详实、细致的方式介绍
    的头像 发表于 11-17 10:55 ?3289次阅读

    Linux网络基本配置与管理

    Linux是一种开源操作系统,被广泛用于服务器和网络设备中。在Linux中,网络配置和管理是一个
    的头像 发表于 11-27 16:51 ?1510次阅读