Linux网络配置全攻略:IP、路由与双机通信
一、IP地址基础
-
IPv4地址
-
表示方法:点分十进制(如
192.168.1.1
) -
结构:
- 网络位:标识所属网络
- 主机位:标识网络内具体设备
-
分类标准:
类别 范围 网络位长度 A 0.0.0.0 ~ 127.255.255.255
/8 B 128.0.0.0 ~ 191.255.255.255
/16 C 192.0.0.0 ~ 223.255.255.255
/24 D 224.0.0.0 ~ 239.255.255.255
(组播) E 240.0.0.0 ~ 255.255.255.255
(保留) -
私有地址范围:
- A类:
10.0.0.0 - 10.255.255.255
- B类:
172.16.0.0 - 172.31.255.255
- C类:
192.168.0.0 - 192.168.255.255
- A类:
-
-
IPv6地址
-
格式:128位,8组16进制数(如
2001:db8:0:1::c000:207
) -
压缩规则:
- 连续全0组可省略为
::
(仅限一次使用) - 每组前导0可省略(如
09C0
→9C0
)
- 连续全0组可省略为
-
示例:
FC00:0000:130F:0000:0000:09C0:876A:130B # 完整格式 FC00:0:130F::09C0:876A:130B # 压缩格式
-
二、网卡配置与管理
配置文件路径
/etc/sysconfig/network-scripts/ifcfg-ens33
关键配置参数
TYPE=Ethernet # 网卡类型(以太网)
BOOTPROTO=none # 配置方式:none/static(静态) 或 dhcp(动态)
NAME=ens33 # 连接名称
UUID=... # 唯一标识
DEVICE=ens33 # 设备名称
ONBOOT=yes # 开机自启
IPADDR=172.16.30.20 # IPv4地址
PREFIX=24 # 子网掩码(等价于NETMASK=255.255.255.0)
GATEWAY=172.16.30.1 # 网关
DNS1=172.16.30.254 # DNS服务器
命令行工具
-
图形化配置:
nmtui
-
查看连接:
nmcli connection show
-
修改IPv4配置:
nmcli connection modify ens33 \ipv4.addresses 172.16.30.200/24 \ipv4.gateway 172.16.30.2 \ipv4.dns 172.16.30.254 \ipv4.method manual \connection.autoconnect yes # 必须参数
-
激活连接:
nmcli connection up ens33 systemctl restart network # 重启网络服务
三、网卡操作指南
删除网卡
-
移除配置文件:
rm -f /etc/sysconfig/network-scripts/ifcfg-ens33
-
删除网络连接:
nmcli connection delete ens33
-
虚拟机中移除网卡。
添加网卡
-
虚拟机添加新网卡(仅主机模式)。
-
创建新连接:
nmcli connection add con-name ens33 ifname ens33 type ethernet
-
配置IP并激活:
nmcli connection modify ens33 \ipv4.addresses 172.16.30.30/24 \ipv4.gateway 172.16.30.1 \ipv4.dns 172.16.30.254 \ipv4.method manual \connection.autoconnect yes # 必须参数 nmcli connection up ens33
四、IPv6配置
nmcli connection modify ens33 \ipv6.addresses "2001:db8:0:1::c000:207/64" \ipv6.gateway "2001:db8:0:1::1" \ipv6.method manual \connection.autoconnect yes # 必须参数
nmcli connection up ens33
五、路由管理
IP转发控制
# 检查转发状态(1=开启, 0=关闭)
cat /proc/sys/net/ipv4/ip_forward# 永久开启:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p # 生效配置
静态路由命令
类型 | 添加命令 | 删除命令 |
---|---|---|
目标主机 | route add -host <IP> gw <网关> dev <接口> | route del -host <IP> gw <网关> dev <接口> |
目标网络(带网关) | route add -net <网段> netmask <掩码> gw <网关> dev <接口> | route del -net <网段> netmask <掩码> |
目标网络(直连) | route add -net <网段> netmask <掩码> dev <接口> | route del -net <网段> netmask <掩码> |
关键规则:
- 目标为主机时必须指定网关
- 目标为网段时可省略网关(直连路由)
示例:
# 添加主机路由 route add -host 172.16.40.10 gw 172.16.30.254 dev ens33# 添加网络路由 route add -net 172.16.30.0 netmask 255.255.255.0 gw 172.16.20.1 dev ens33
六、实验:双主机通信
主机配置
主机 | IP地址 | 子网掩码 | 网关 | 模式 |
---|---|---|---|---|
chenyu1 | 172.16.30.10 | 255.255.255.0 | 172.16.30.254 | 仅主机模式 |
chenyu2 | 172.16.40.10 | 255.255.255.0 | 172.16.40.254 | 仅主机模式 |
操作步骤
-
配置IP:
# YDH:
nmcli connection modify ens33 \ipv4.addresses 172.16.30.10/24 \ipv4.gateway 172.16.30.254 \ipv4.method manual# ydh2:
nmcli connection modify ens33 \ipv4.addresses 172.16.40.10/24 \ipv4.gateway 172.16.40.254 \ipv4.method manual
- 添加路由**:
# 在YDH上:
route add -net 172.16.40.0 netmask 255.255.255.0 gw 172.16.30.254 dev ens33# 在ydh2上:
route add -net 172.16.30.0 netmask 255.255.255.0 gw 172.16.40.254 dev ens33
-
激活连接:
nmcli connection up ens33 # 两台主机均执行
-
验证通信:
ping 172.16.40.10 # 从YDH执行