活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Fedora Linux 35网络配置完全指南从基础设置到高级技巧轻松解决各类网络连接问题提升系统使用体验

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-7 16:10:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Fedora Linux 35作为一款先进的开源操作系统,为用户提供了强大而灵活的网络配置选项。无论您是Linux新手还是经验丰富的系统管理员,掌握网络配置都是提升系统使用体验的关键。本文将详细介绍Fedora Linux 35中的网络配置方法,从基础设置到高级技巧,帮助您轻松解决各类网络连接问题。

在Fedora Linux 35中,网络配置可以通过图形界面和命令行两种方式完成。图形界面适合新手用户,提供了直观的操作方式;而命令行则提供了更多的配置选项和更高的灵活性,适合高级用户和系统管理员。本文将全面覆盖这两种方式,并深入探讨各种网络配置场景。

基础网络配置

图形界面下的网络配置

Fedora Linux 35使用GNOME作为默认桌面环境,提供了简单易用的图形界面网络配置工具。以下是使用图形界面配置网络的基本步骤:

1. 点击系统右上角的通知区域,找到网络图标。
2. 点击网络图标,会显示可用网络列表。
3. 选择您要连接的网络,如果是无线网络,可能需要输入密码。
4. 连接后,您可以右键点击网络图标,选择”Wired Settings”或”Wi-Fi Settings”进入详细的网络配置界面。

在详细设置界面中,您可以:

• 查看当前连接状态
• 配置IPv4和IPv6设置(自动(DHCP)或手动)
• 设置DNS服务器
• 配置网络代理
• 管理VPN连接

对于大多数用户而言,图形界面已经足够满足日常的网络配置需求。但如果您需要更高级的配置或自动化网络管理,命令行工具将是更好的选择。

命令行下的基础网络配置

Fedora Linux 35使用NetworkManager作为默认的网络管理工具,它提供了一套命令行工具nmcli,可以方便地进行网络配置。

使用以下命令查看网络设备状态:
  1. nmcli device status
复制代码

输出示例:
  1. DEVICE      TYPE      STATE      CONNECTION
  2. wlp3s0      wifi      connected  MyWiFi
  3. enp0s25     ethernet  disconnected  --
  4. lo          loopback  unmanaged   --
复制代码
  1. nmcli connection show
复制代码

输出示例:
  1. NAME    UUID                                  TYPE      DEVICE
  2. MyWiFi  12345678-1234-1234-1234-1234567890ab  wifi      wlp3s0
  3. Wired-1 87654321-4321-4321-4321-ba0987654321  ethernet  --
复制代码
  1. # 激活连接
  2. nmcli connection up "MyWiFi"
  3. # 停用连接
  4. nmcli connection down "MyWiFi"
复制代码

网络管理工具介绍

除了NetworkManager,Fedora Linux 35还提供了其他网络管理工具:

1. nmtui- 基于文本的用户界面,适合在终端中使用:sudo nmtui
2. nm-connection-editor- 图形界面的高级网络连接编辑器:nm-connection-editor
3. systemd-networkd- 一个轻量级的网络守护进程,适合服务器环境:sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
4. ifcfg文件- 传统的网络配置方式,通过编辑/etc/sysconfig/network-scripts/目录下的配置文件来管理网络。

nmtui- 基于文本的用户界面,适合在终端中使用:
  1. sudo nmtui
复制代码

nm-connection-editor- 图形界面的高级网络连接编辑器:
  1. nm-connection-editor
复制代码

systemd-networkd- 一个轻量级的网络守护进程,适合服务器环境:
  1. sudo systemctl enable systemd-networkd
  2. sudo systemctl start systemd-networkd
复制代码

ifcfg文件- 传统的网络配置方式,通过编辑/etc/sysconfig/network-scripts/目录下的配置文件来管理网络。

虽然NetworkManager是默认的网络管理工具,但在某些特殊场景下,其他工具可能更适合您的需求。例如,在服务器环境中,systemd-networkd可能更轻量、更高效。

有线网络配置

自动获取IP(DHCP)

在大多数家庭和办公环境中,自动获取IP地址(DHCP)是最简单、最常见的网络配置方式。在Fedora Linux 35中,有线网络默认使用DHCP获取IP地址。
  1. # 创建一个新的有线连接,使用DHCP
  2. sudo nmcli connection add type ethernet ifname enp0s25 con-name "Wired-DHCP"
  3. # 激活连接
  4. sudo nmcli connection up "Wired-DHCP"
复制代码
  1. # 查看IP地址
  2. ip addr show enp0s25
  3. # 查看路由表
  4. ip route show
  5. # 测试网络连通性
  6. ping -c 4 fedoraproject.org
复制代码

静态IP配置

在某些情况下,您可能需要为系统配置静态IP地址,例如在服务器环境中或需要固定网络地址的应用场景。
  1. # 创建一个新的有线连接,使用静态IP
  2. sudo nmcli connection add type ethernet ifname enp0s25 con-name "Wired-Static"
  3. # 配置静态IP地址、子网掩码和网关
  4. sudo nmcli connection modify "Wired-Static" ipv4.addresses 192.168.1.100/24
  5. sudo nmcli connection modify "Wired-Static" ipv4.gateway 192.168.1.1
  6. sudo nmcli connection modify "Wired-Static" ipv4.dns "8.8.8.8 8.8.4.4"
  7. sudo nmcli connection modify "Wired-Static" ipv4.method manual
  8. # 激活连接
  9. sudo nmcli connection up "Wired-Static"
复制代码

虽然NetworkManager是推荐的网络管理工具,但您也可以使用传统的ifcfg文件配置静态IP:

1. 创建配置文件:sudo nano /etc/sysconfig/network-scripts/ifcfg-enp0s25
2. 添加以下内容:TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s25
UUID=12345678-1234-1234-1234-1234567890ab
DEVICE=enp0s25
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
3. 重启网络服务:sudo systemctl restart NetworkManager

创建配置文件:
  1. sudo nano /etc/sysconfig/network-scripts/ifcfg-enp0s25
复制代码

添加以下内容:
  1. TYPE=Ethernet
  2. BOOTPROTO=none
  3. DEFROUTE=yes
  4. IPV4_FAILURE_FATAL=no
  5. IPV6INIT=yes
  6. IPV6_AUTOCONF=yes
  7. IPV6_DEFROUTE=yes
  8. IPV6_FAILURE_FATAL=no
  9. NAME=enp0s25
  10. UUID=12345678-1234-1234-1234-1234567890ab
  11. DEVICE=enp0s25
  12. ONBOOT=yes
  13. IPADDR=192.168.1.100
  14. PREFIX=24
  15. GATEWAY=192.168.1.1
  16. DNS1=8.8.8.8
  17. DNS2=8.8.4.4
复制代码

重启网络服务:
  1. sudo systemctl restart NetworkManager
复制代码

有线网络故障排除

当有线网络连接出现问题时,可以按照以下步骤进行故障排除:

1. 检查物理连接:# 检查网络接口状态
ethtool enp0s25
2. 检查NetworkManager状态:systemctl status NetworkManager
3. 查看系统日志:journalctl -u NetworkManager -b
4. 检查IP配置:ip addr show enp0s25
ip route show
5. 测试网络连通性:ping -c 4 192.168.1.1
ping -c 4 8.8.8.8
ping -c 4 fedoraproject.org
6. 检查DNS解析:nslookup fedoraproject.org
dig fedoraproject.org
7. 重置网络配置:sudo nmcli connection down "Wired-Static"
sudo nmcli connection up "Wired-Static"

检查物理连接:
  1. # 检查网络接口状态
  2. ethtool enp0s25
复制代码

检查NetworkManager状态:
  1. systemctl status NetworkManager
复制代码

查看系统日志:
  1. journalctl -u NetworkManager -b
复制代码

检查IP配置:
  1. ip addr show enp0s25
  2. ip route show
复制代码

测试网络连通性:
  1. ping -c 4 192.168.1.1
  2. ping -c 4 8.8.8.8
  3. ping -c 4 fedoraproject.org
复制代码

检查DNS解析:
  1. nslookup fedoraproject.org
  2. dig fedoraproject.org
复制代码

重置网络配置:
  1. sudo nmcli connection down "Wired-Static"
  2. sudo nmcli connection up "Wired-Static"
复制代码

如果以上步骤无法解决问题,可能需要检查硬件设备、驱动程序或网络设备(如路由器、交换机)的配置。

无线网络配置

连接WiFi网络

Fedora Linux 35提供了简单易用的WiFi网络配置方法,既可以通过图形界面,也可以通过命令行完成。

1. 点击系统右上角的通知区域,找到网络图标。
2. 点击网络图标,在可用WiFi网络列表中选择您要连接的网络。
3. 如果网络需要密码,输入密码并点击”连接”。
  1. # 扫描可用的WiFi网络
  2. sudo nmcli dev wifi list
  3. # 连接到WiFi网络
  4. sudo nmcli dev wifi connect "SSID" password "password"
  5. # 创建一个新的WiFi连接配置
  6. sudo nmcli connection add type wifi ifname wlp3s0 con-name "MyWiFi" ssid "SSID"
  7. sudo nmcli connection modify "MyWiFi" wifi-sec.key-mgmt wpa-psk
  8. sudo nmcli connection modify "MyWiFi" wifi-sec.psk "password"
  9. sudo nmcli connection up "MyWiFi"
复制代码

隐藏WiFi网络连接

隐藏WiFi网络不广播其SSID,因此需要手动配置才能连接。
  1. # 创建一个新的隐藏WiFi连接配置
  2. sudo nmcli connection add type wifi ifname wlp3s0 con-name "HiddenWiFi" ssid "HiddenSSID"
  3. sudo nmcli connection modify "HiddenWiFi" wifi-sec.key-mgmt wpa-psk
  4. sudo nmcli connection modify "HiddenWiFi" wifi-sec.psk "password"
  5. sudo nmcli connection modify "HiddenWiFi" wifi.hidden yes
  6. sudo nmcli connection up "HiddenWiFi"
复制代码

1. 点击系统右上角的通知区域,找到网络图标。
2. 点击网络图标,选择”Wi-Fi Settings”。
3. 点击右上角的”+“按钮添加新的连接。
4. 选择”Wi-Fi”作为连接类型。
5. 输入网络名称(SSID),选择”Hidden Network”。
6. 在”Wi-Fi Security”选项卡中选择安全类型并输入密码。
7. 点击”Apply”保存配置。
8. 在网络列表中选择新创建的连接并点击”Connect”。

无线网络故障排除

当无线网络连接出现问题时,可以按照以下步骤进行故障排除:

1. 检查无线网卡状态:# 检查无线网卡是否被识别
ip addr show
2. 检查无线网卡是否启用:
“`bash检查无线网卡是否被硬件或软件阻止rfkill list all

检查无线网卡状态:
  1. # 检查无线网卡是否被识别
  2. ip addr show
复制代码

检查无线网卡是否启用:
“`bash

rfkill list all

# 如果被阻止,可以使用以下命令解除阻止
   sudo rfkill unblock wifi
  1. 3. **检查NetworkManager状态**:
  2.    ```bash
  3.    systemctl status NetworkManager
复制代码

1. 查看系统日志:journalctl -u NetworkManager -b
2. 检查无线网络驱动:
“`bash检查无线网卡驱动状态lspci -k | grep -iA3 net

查看系统日志:
  1. journalctl -u NetworkManager -b
复制代码

检查无线网络驱动:
“`bash

lspci -k | grep -iA3 net

# 检查驱动是否已加载
   lsmod | grep
  1. 6. **重新加载无线网卡驱动**:
  2.    ```bash
  3.    # 卸载驱动
  4.    sudo modprobe -r <driver_name>
  5.    
  6.    # 重新加载驱动
  7.    sudo modprobe <driver_name>
复制代码

1. 重启NetworkManager服务:sudo systemctl restart NetworkManager
2. 重置WiFi配置:
“`bash删除现有WiFi配置sudo nmcli connection delete “MyWiFi”

重启NetworkManager服务:
  1. sudo systemctl restart NetworkManager
复制代码

重置WiFi配置:
“`bash

sudo nmcli connection delete “MyWiFi”

# 重新创建WiFi连接
   sudo nmcli dev wifi connect “SSID” password “password”
  1. ## 高级网络配置
  2. ### 网络绑定(Network Bonding)
  3. 网络绑定是将多个网络接口组合成一个逻辑接口的技术,可以提高网络带宽和冗余性。
  4. #### 配置网络绑定
  5. 1. 创建绑定接口:
  6.    ```bash
  7.    # 创建绑定连接
  8.    sudo nmcli connection add type bond con-name "bond0" ifname "bond0" mode "balance-rr"
  9.    
  10.    # 将物理接口添加到绑定
  11.    sudo nmcli connection add type ethernet slave-type bond con-name "bond0-slave1" ifname enp3s0 master "bond0"
  12.    sudo nmcli connection add type ethernet slave-type bond con-name "bond0-slave2" ifname enp4s0 master "bond0"
  13.    
  14.    # 配置IP地址
  15.    sudo nmcli connection modify "bond0" ipv4.addresses 192.168.1.100/24
  16.    sudo nmcli connection modify "bond0" ipv4.gateway 192.168.1.1
  17.    sudo nmcli connection modify "bond0" ipv4.dns "8.8.8.8 8.8.4.4"
  18.    sudo nmcli connection modify "bond0" ipv4.method manual
  19.    
  20.    # 激活绑定
  21.    sudo nmcli connection up "bond0"
复制代码

1. 验证绑定配置:
“`bash查看绑定状态cat /proc/net/bonding/bond0

验证绑定配置:
“`bash

cat /proc/net/bonding/bond0

# 查看绑定接口的IP配置
   ip addr show bond0
  1. #### 绑定模式说明
  2. 网络绑定支持多种模式,每种模式适用于不同的场景:
  3. 1. **balance-rr (0)**: 轮询模式,数据包按顺序从第一个可用接口到最后一个接口传输。
  4. 2. **active-backup (1)**: 主备模式,只有一个接口处于活动状态,当活动接口故障时,备用接口接管。
  5. 3. **balance-xor (2)**: XOR模式,根据源MAC地址和目标MAC地址的XOR选择传输接口。
  6. 4. **broadcast (3)**: 广播模式,所有数据包从所有接口传输。
  7. 5. **802.3ad (4)**: IEEE 802.3ad动态链接聚合,需要交换机支持。
  8. 6. **balance-tlb (5)**: 自适应传输负载均衡,根据当前负载分配出站流量。
  9. 7. **balance-alb (6)**: 自适应负载均衡,包括balance-tlb和接收负载均衡(RLB)。
  10. ### 网络桥接(Network Bridging)
  11. 网络桥接是将多个网络接口连接到一个逻辑网络的技术,常用于虚拟化和容器环境。
  12. #### 配置网络桥接
  13. 1. 创建网桥接口:
  14.    ```bash
  15.    # 创建网桥连接
  16.    sudo nmcli connection add type bridge con-name "br0" ifname "br0"
  17.    
  18.    # 将物理接口添加到网桥
  19.    sudo nmcli connection add type ethernet slave-type bridge con-name "br0-slave1" ifname enp3s0 master "br0"
  20.    
  21.    # 配置IP地址
  22.    sudo nmcli connection modify "br0" ipv4.addresses 192.168.1.100/24
  23.    sudo nmcli connection modify "br0" ipv4.gateway 192.168.1.1
  24.    sudo nmcli connection modify "br0" ipv4.dns "8.8.8.8 8.8.4.4"
  25.    sudo nmcli connection modify "br0" ipv4.method manual
  26.    
  27.    # 激活网桥
  28.    sudo nmcli connection up "br0"
复制代码

1. 验证网桥配置:
“`bash查看网桥状态brctl show

验证网桥配置:
“`bash

brctl show

# 查看网桥接口的IP配置
   ip addr show br0
  1. ### VLAN配置
  2. VLAN(虚拟局域网)是一种将物理网络划分为多个逻辑网络的技术,可以提高网络的安全性和性能。
  3. #### 配置VLAN
  4. 1. 创建VLAN接口:
  5.    ```bash
  6.    # 创建VLAN连接
  7.    sudo nmcli connection add type vlan con-name "vlan100" dev enp3s0 id 100
  8.    
  9.    # 配置IP地址
  10.    sudo nmcli connection modify "vlan100" ipv4.addresses 192.168.100.100/24
  11.    sudo nmcli connection modify "vlan100" ipv4.gateway 192.168.100.1
  12.    sudo nmcli connection modify "vlan100" ipv4.dns "8.8.8.8 8.8.4.4"
  13.    sudo nmcli connection modify "vlan100" ipv4.method manual
  14.    
  15.    # 激活VLAN
  16.    sudo nmcli connection up "vlan100"
复制代码

1. 验证VLAN配置:
“`bash查看VLAN接口ip addr show enp3s0.100

验证VLAN配置:
“`bash

ip addr show enp3s0.100

# 测试VLAN连通性
   ping -c 4 192.168.100.1
  1. ### 网络命名空间
  2. 网络命名空间是Linux内核提供的一种网络隔离技术,允许在同一主机上创建多个独立的网络栈。
  3. #### 创建和使用网络命名空间
  4. 1. 创建网络命名空间:
  5.    ```bash
  6.    # 创建新的网络命名空间
  7.    sudo ip netns add ns1
  8.    
  9.    # 查看网络命名空间
  10.    sudo ip netns list
复制代码

1. 在网络命名空间中执行命令:
“`bash在命名空间中执行命令sudo ip netns exec ns1 ip addr show

在网络命名空间中执行命令:
“`bash

sudo ip netns exec ns1 ip addr show

# 在命名空间中启动交互式shell
   sudo ip netns exec ns1 bash
  1. 3. 配置网络命名空间中的网络接口:
  2.    ```bash
  3.    # 创建veth对
  4.    sudo ip link add veth0 type veth peer name veth1
  5.    
  6.    # 将veth1移动到命名空间ns1
  7.    sudo ip link set veth1 netns ns1
  8.    
  9.    # 配置veth0
  10.    sudo ip addr add 192.168.200.1/24 dev veth0
  11.    sudo ip link set veth0 up
  12.    
  13.    # 在命名空间ns1中配置veth1
  14.    sudo ip netns exec ns1 ip addr add 192.168.200.2/24 dev veth1
  15.    sudo ip netns exec ns1 ip link set veth1 up
  16.    sudo ip netns exec ns1 ip link set lo up
复制代码

1. 测试网络命名空间连通性:
“`bash从主机测试ping -c 4 192.168.200.2

测试网络命名空间连通性:
“`bash

ping -c 4 192.168.200.2

# 从命名空间ns1测试
   sudo ip netns exec ns1 ping -c 4 192.168.200.1
  1. 网络命名空间在容器技术和微服务架构中广泛应用,可以提供网络隔离和安全隔离。
  2. ## 网络安全配置
  3. ### 防火墙配置(firewalld)
  4. Fedora Linux 35默认使用firewalld作为防火墙管理工具,它提供了动态管理的防火墙,支持网络/防火墙区域定义。
  5. #### 基本firewalld配置
  6. 1. 检查firewalld状态:
  7.    ```bash
  8.    sudo systemctl status firewalld
复制代码

1. 启动和启用firewalld:sudo systemctl start firewalld
sudo systemctl enable firewalld
2. 查看默认区域:sudo firewall-cmd --get-default-zone
3. 查看活动区域:sudo firewall-cmd --get-active-zones
4. 查看区域配置:sudo firewall-cmd --list-all --zone=public

启动和启用firewalld:
  1. sudo systemctl start firewalld
  2. sudo systemctl enable firewalld
复制代码

查看默认区域:
  1. sudo firewall-cmd --get-default-zone
复制代码

查看活动区域:
  1. sudo firewall-cmd --get-active-zones
复制代码

查看区域配置:
  1. sudo firewall-cmd --list-all --zone=public
复制代码

1. 开放端口:
“`bash开放单个端口sudo firewall-cmd –permanent –add-port=80/tcp

开放端口:
“`bash

sudo firewall-cmd –permanent –add-port=80/tcp

# 开放端口范围
   sudo firewall-cmd –permanent –add-port=8000-9000/tcp
  1. 2. 开放服务:
  2.    ```bash
  3.    # 开放HTTP服务
  4.    sudo firewall-cmd --permanent --add-service=http
  5.    
  6.    # 查看可用的服务
  7.    sudo firewall-cmd --get-services
复制代码

1.
  1. 添加富规则(Rich Rules):
  2. “`bash允许特定IP访问sudo firewall-cmd –permanent –add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” accept’
复制代码

添加富规则(Rich Rules):
“`bash

sudo firewall-cmd –permanent –add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” accept’

# 拒绝特定IP访问
   sudo firewall-cmd –permanent –add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.200” reject’

# 允许特定IP访问特定端口
   sudo firewall-cmd –permanent –add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port protocol=“tcp” port=“22” accept’
  1. 4. 应用更改:
  2.    ```bash
  3.    sudo firewall-cmd --reload
复制代码

1. 更改默认区域:sudo firewall-cmd --set-default-zone=home
2. 将接口添加到特定区域:sudo firewall-cmd --permanent --zone=work --change-interface=enp0s25
3. 创建新区域:sudo firewall-cmd --permanent --new-zone=custom
sudo firewall-cmd --permanent --zone=custom --set-description="Custom zone"
sudo firewall-cmd --permanent --zone=custom --set-target=DROP
sudo firewall-cmd --reload

更改默认区域:
  1. sudo firewall-cmd --set-default-zone=home
复制代码

将接口添加到特定区域:
  1. sudo firewall-cmd --permanent --zone=work --change-interface=enp0s25
复制代码

创建新区域:
  1. sudo firewall-cmd --permanent --new-zone=custom
  2. sudo firewall-cmd --permanent --zone=custom --set-description="Custom zone"
  3. sudo firewall-cmd --permanent --zone=custom --set-target=DROP
  4. sudo firewall-cmd --reload
复制代码

网络安全最佳实践

1. 使用强密码和认证:为WiFi网络使用强密码,推荐WPA2或WPA3加密禁用WPS,因为它存在安全漏洞定期更换密码
2. 为WiFi网络使用强密码,推荐WPA2或WPA3加密
3. 禁用WPS,因为它存在安全漏洞
4. 定期更换密码
5. 限制网络访问:使用防火墙限制不必要的端口和服务只允许可信任的IP访问关键服务使用VPN进行远程访问
6. 使用防火墙限制不必要的端口和服务
7. 只允许可信任的IP访问关键服务
8. 使用VPN进行远程访问
9. 监控网络活动:
“`bash安装网络监控工具sudo dnf install ntopng

使用强密码和认证:

• 为WiFi网络使用强密码,推荐WPA2或WPA3加密
• 禁用WPS,因为它存在安全漏洞
• 定期更换密码

限制网络访问:

• 使用防火墙限制不必要的端口和服务
• 只允许可信任的IP访问关键服务
• 使用VPN进行远程访问

监控网络活动:
“`bash

sudo dnf install ntopng

# 启动ntopng
   sudo systemctl start ntopng
   sudo systemctl enable ntopng
  1. 4. **使用SSH密钥认证**:
  2.    ```bash
  3.    # 生成SSH密钥
  4.    ssh-keygen -t rsa -b 4096
  5.    
  6.    # 将公钥复制到远程服务器
  7.    ssh-copy-id user@remote-server
  8.    
  9.    # 禁用密码认证
  10.    sudo nano /etc/ssh/sshd_config
  11.    # 修改PasswordAuthentication为no
  12.    PasswordAuthentication no
  13.    
  14.    # 重启SSH服务
  15.    sudo systemctl restart sshd
复制代码

1. 定期更新系统:
“`bash更新系统sudo dnf update

定期更新系统:
“`bash

sudo dnf update

# 设置自动更新
   sudo dnf install dnf-automatic
   sudo systemctl enable –now dnf-automatic.timer
  1. 6. **使用SELinux**:
  2.    ```bash
  3.    # 检查SELinux状态
  4.    sestatus
  5.    
  6.    # 设置SELinux为强制模式
  7.    sudo setenforce 1
  8.    
  9.    # 查看SELinux日志
  10.    sudo sealert -a /var/log/audit/audit.log
复制代码

网络故障诊断与排除

常用网络诊断工具

1. ping- 测试网络连通性:
“`bash发送4个ICMP回显请求ping -c 4 fedoraproject.org

ping- 测试网络连通性:
“`bash

ping -c 4 fedoraproject.org

# 持续ping并显示时间戳
   ping -D fedoraproject.org
  1. 2. **traceroute** - 追踪网络路径:
  2.    ```bash
  3.    # 使用ICMP进行路径追踪
  4.    traceroute fedoraproject.org
  5.    
  6.    # 使用UDP进行路径追踪
  7.    traceroute -U fedoraproject.org
复制代码

1. mtr- 结合ping和traceroute的网络诊断工具:
“`bash安装mtrsudo dnf install mtr

mtr- 结合ping和traceroute的网络诊断工具:
“`bash

sudo dnf install mtr

# 使用mtr进行网络诊断
   mtr fedoraproject.org
  1. 4. **netstat** - 显示网络连接、路由表、接口统计等:
  2.    ```bash
  3.    # 显示所有TCP连接
  4.    netstat -t
  5.    
  6.    # 显示所有UDP连接
  7.    netstat -u
  8.    
  9.    # 显示所有监听端口
  10.    netstat -l
  11.    
  12.    # 显示进程ID和名称
  13.    netstat -p
复制代码

1. ss- 显示套接字统计信息,是netstat的替代品:
“`bash显示所有TCP连接ss -t

ss- 显示套接字统计信息,是netstat的替代品:
“`bash

ss -t

# 显示所有UDP连接
   ss -u

# 显示所有监听端口
   ss -l

# 显示进程ID和名称
   ss -p
  1. 6. **tcpdump** - 网络抓包工具:
  2.    ```bash
  3.    # 安装tcpdump
  4.    sudo dnf install tcpdump
  5.    
  6.    # 抓取指定接口的所有数据包
  7.    sudo tcpdump -i enp0s25
  8.    
  9.    # 抓取指定主机的数据包
  10.    sudo tcpdump host 192.168.1.100
  11.    
  12.    # 抓取指定端口的数据包
  13.    sudo tcpdump port 80
  14.    
  15.    # 保存抓包结果到文件
  16.    sudo tcpdump -w capture.pcap
  17.    
  18.    # 读取抓包文件
  19.    tcpdump -r capture.pcap
复制代码

1. nmap- 网络探测和安全审核工具:
“`bash安装nmapsudo dnf install nmap

nmap- 网络探测和安全审核工具:
“`bash

sudo dnf install nmap

# 扫描主机开放端口
   nmap 192.168.1.100

# 扫描网络中的所有主机
   nmap -sP 192.168.1.0/24

# 扫描特定端口
   nmap -p 22,80,443 192.168.1.100

# 操作系统检测
   nmap -O 192.168.1.100
  1. 8. **dig** - DNS查询工具:
  2.    ```bash
  3.    # 查询域名的A记录
  4.    dig fedoraproject.org
  5.    
  6.    # 查询域名的MX记录
  7.    dig fedoraproject.org MX
  8.    
  9.    # 查询域名的NS记录
  10.    dig fedoraproject.org NS
  11.    
  12.    # 反向查询
  13.    dig -x 8.8.8.8
复制代码

常见问题及解决方案

1. 无法连接到WiFi网络解决方案:
“`bash重启NetworkManager服务sudo systemctl restart NetworkManager# 重启无线网卡
sudo nmcli radio wifi off
sudo nmcli radio wifi on# 重新连接WiFi
sudo nmcli device wifi connect “SSID” password “password”
“`
2. 解决方案:
“`bash重启NetworkManager服务sudo systemctl restart NetworkManager
3. 无法获取IP地址解决方案:
“`bash释放当前IP地址sudo dhclient -r enp0s25# 重新获取IP地址
sudo dhclient enp0s25# 或者使用nmcli
sudo nmcli connection down “Wired-Connection”
sudo nmcli connection up “Wired-Connection”
“`
4. 解决方案:
“`bash释放当前IP地址sudo dhclient -r enp0s25
5. DNS解析失败解决方案:
“`bash检查DNS配置cat /etc/resolv.conf# 临时修改DNS服务器
sudo echo “nameserver 8.8.8.8” > /etc/resolv.conf# 使用nmcli修改DNS配置
sudo nmcli connection modify “Wired-Connection” ipv4.dns “8.8.8.8 8.8.4.4”
sudo nmcli connection up “Wired-Connection”
“`
6. 解决方案:
“`bash检查DNS配置cat /etc/resolv.conf
7. 网络连接慢解决方案:
“`bash检查MTU设置ip link show enp0s25# 调整MTU值
sudo ip link set enp0s25 mtu 1400# 检查网络延迟
ping -c 4 fedoraproject.org# 使用mtr进行详细诊断
mtr fedoraproject.org
“`
8. 解决方案:
“`bash检查MTU设置ip link show enp0s25
9. SSH连接失败解决方案:
“`bash检查SSH服务状态sudo systemctl status sshd# 启动SSH服务
sudo systemctl start sshd# 检查SSH配置
sudo nano /etc/ssh/sshd_config# 检查防火墙设置
sudo firewall-cmd –list-all
sudo firewall-cmd –permanent –add-service=ssh
sudo firewall-cmd –reload
“`
10. 解决方案:
“`bash检查SSH服务状态sudo systemctl status sshd
11. VPN连接问题解决方案:
“`bash检查NetworkManager VPN插件sudo dnf install NetworkManager-openvpn NetworkManager-vpnc NetworkManager-pptp# 重启NetworkManager服务
sudo systemctl restart NetworkManager# 检查日志
journalctl -u NetworkManager -b | grep VPN
“`
12. 解决方案:
“`bash检查NetworkManager VPN插件sudo dnf install NetworkManager-openvpn NetworkManager-vpnc NetworkManager-pptp

无法连接到WiFi网络

• 解决方案:
“`bash重启NetworkManager服务sudo systemctl restart NetworkManager

解决方案:
“`bash

sudo systemctl restart NetworkManager

# 重启无线网卡
sudo nmcli radio wifi off
sudo nmcli radio wifi on

# 重新连接WiFi
sudo nmcli device wifi connect “SSID” password “password”
“`

无法获取IP地址

• 解决方案:
“`bash释放当前IP地址sudo dhclient -r enp0s25

解决方案:
“`bash

sudo dhclient -r enp0s25

# 重新获取IP地址
sudo dhclient enp0s25

# 或者使用nmcli
sudo nmcli connection down “Wired-Connection”
sudo nmcli connection up “Wired-Connection”
“`

DNS解析失败

• 解决方案:
“`bash检查DNS配置cat /etc/resolv.conf

解决方案:
“`bash

cat /etc/resolv.conf

# 临时修改DNS服务器
sudo echo “nameserver 8.8.8.8” > /etc/resolv.conf

# 使用nmcli修改DNS配置
sudo nmcli connection modify “Wired-Connection” ipv4.dns “8.8.8.8 8.8.4.4”
sudo nmcli connection up “Wired-Connection”
“`

网络连接慢

• 解决方案:
“`bash检查MTU设置ip link show enp0s25

解决方案:
“`bash

ip link show enp0s25

# 调整MTU值
sudo ip link set enp0s25 mtu 1400

# 检查网络延迟
ping -c 4 fedoraproject.org

# 使用mtr进行详细诊断
mtr fedoraproject.org
“`

SSH连接失败

• 解决方案:
“`bash检查SSH服务状态sudo systemctl status sshd

解决方案:
“`bash

sudo systemctl status sshd

# 启动SSH服务
sudo systemctl start sshd

# 检查SSH配置
sudo nano /etc/ssh/sshd_config

# 检查防火墙设置
sudo firewall-cmd –list-all
sudo firewall-cmd –permanent –add-service=ssh
sudo firewall-cmd –reload
“`

VPN连接问题

• 解决方案:
“`bash检查NetworkManager VPN插件sudo dnf install NetworkManager-openvpn NetworkManager-vpnc NetworkManager-pptp

解决方案:
“`bash

sudo dnf install NetworkManager-openvpn NetworkManager-vpnc NetworkManager-pptp

# 重启NetworkManager服务
sudo systemctl restart NetworkManager

# 检查日志
journalctl -u NetworkManager -b | grep VPN
“`

性能优化

网络性能调优

1. 调整TCP参数:
“`bash查看当前TCP参数sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem

调整TCP参数:
“`bash

sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem

# 临时调整TCP参数
   sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
   sudo sysctl -w net.core.rmem_max=134217728
   sudo sysctl -w net.core.wmem_max=134217728
   sudo sysctl -w net.ipv4.tcp_rmem=“4096 87380 134217728”
   sudo sysctl -w net.ipv4.tcp_wmem=“4096 65536 134217728”

# 永久调整TCP参数
   sudo nano /etc/sysctl.d/99-network.conf
   # 添加以下内容
   net.ipv4.tcp_congestion_control = bbr
   net.core.rmem_max = 134217728
   net.core.wmem_max = 134217728
   net.ipv4.tcp_rmem = 4096 87380 134217728
   net.ipv4.tcp_wmem = 4096 65536 134217728

# 应用更改
   sudo sysctl -p /etc/sysctl.d/99-network.conf
  1. 2. **启用BBR拥塞控制算法**:
  2.    ```bash
  3.    # 检查是否支持BBR
  4.    modinfo tcp_bbr
  5.    
  6.    # 加载BBR模块
  7.    sudo modprobe tcp_bbr
  8.    
  9.    # 设置BBR为默认拥塞控制算法
  10.    sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
  11.    
  12.    # 验证BBR是否启用
  13.    sysctl net.ipv4.tcp_congestion_control
复制代码

1. 调整网络接口参数:
“`bash启用TCP BBR拥塞控制sudo ethtool -K enp0s25 tso on
sudo ethtool -K enp0s25 gso on
sudo ethtool -K enp0s25 gro on
sudo ethtool -K enp0s25 lro on

调整网络接口参数:
“`bash

sudo ethtool -K enp0s25 tso on
sudo ethtool -K enp0s25 gso on
sudo ethtool -K enp0s25 gro on
sudo ethtool -K enp0s25 lro on

# 调整队列长度
   sudo ifconfig enp0s25 txqueuelen 10000
  1. ### 高级网络设置
  2. 1. **网络流量控制(TC)**:
  3.    ```bash
  4.    # 安装tc工具
  5.    sudo dnf install iproute-tc
  6.    
  7.    # 创建根队列
  8.    sudo tc qdisc add dev enp0s25 root handle 1: htb default 30
  9.    
  10.    # 创建主类
  11.    sudo tc class add dev enp0s25 parent 1: classid 1:1 htb rate 1000mbit
  12.    
  13.    # 创建子类
  14.    sudo tc class add dev enp0s25 parent 1:1 classid 1:10 htb rate 500mbit ceil 800mbit
  15.    sudo tc class add dev enp0s25 parent 1:1 classid 1:20 htb rate 300mbit ceil 500mbit
  16.    sudo tc class add dev enp0s25 parent 1:1 classid 1:30 htb rate 200mbit ceil 300mbit
  17.    
  18.    # 创建过滤器
  19.    sudo tc filter add dev enp0s25 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.100 flowid 1:10
  20.    sudo tc filter add dev enp0s25 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.200 flowid 1:20
  21.    
  22.    # 查看tc配置
  23.    sudo tc qdisc show dev enp0s25
  24.    sudo tc class show dev enp0s25
  25.    sudo tc filter show dev enp0s25
复制代码

1. 网络策略路由:
“`bash创建新的路由表sudo echo “200 custom_table” >> /etc/iproute2/rt_tables

网络策略路由:
“`bash

sudo echo “200 custom_table” >> /etc/iproute2/rt_tables

# 添加路由规则
   sudo ip rule add from 192.168.1.100 table custom_table
   sudo ip route add default via 192.168.1.1 dev enp0s25 table custom_table

# 查看路由规则
   ip rule show

# 查看路由表
   ip route show table custom_table
  1. 3. **网络多路径路由**:
  2.    ```bash
  3.    # 启用多路径路由
  4.    sudo sysctl -w net.ipv4.fib_multipath_hash_policy=1
  5.    
  6.    # 添加多路径路由
  7.    sudo ip route add default nexthop via 192.168.1.1 dev enp0s25 weight 1 nexthop via 192.168.2.1 dev enp1s25 weight 1
  8.    
  9.    # 查看路由表
  10.    ip route show
复制代码

1. 网络负载均衡:
“`bash安装keepalivedsudo dnf install keepalived

网络负载均衡:
“`bash

sudo dnf install keepalived

# 配置keepalived
   sudo nano /etc/keepalived/keepalived.conf
   # 添加以下内容
   vrrp_script chk_http_port {
  1. script "/usr/bin/killall -0 nginx"
  2.    interval 2
  3.    weight 2
复制代码

}

vrrp_instance VI_1 {
  1. interface enp0s25
  2.    state MASTER
  3.    priority 101
  4.    virtual_router_id 51
  5.    advert_int 1
  6.    authentication {
  7.        auth_type PASS
  8.        auth_pass your_password
  9.    }
  10.    virtual_ipaddress {
  11.        192.168.1.100
  12.    }
  13.    track_script {
  14.        chk_http_port
  15.    }
复制代码

}

# 启动keepalived
   sudo systemctl start keepalived
   sudo systemctl enable keepalived
   “`

总结

Fedora Linux 35提供了强大而灵活的网络配置选项,从基础的DHCP和静态IP配置,到高级的网络绑定、桥接、VLAN和网络命名空间等。通过掌握这些配置技巧,您可以轻松解决各类网络连接问题,提升系统使用体验。

本文详细介绍了Fedora Linux 35中的网络配置方法,包括图形界面和命令行两种方式,并提供了丰富的代码示例和故障排除指南。无论您是Linux新手还是经验丰富的系统管理员,都可以从中获得实用的知识和技巧。

在实际应用中,请根据您的具体需求选择适合的网络配置方式,并始终注意网络安全。同时,定期更新系统和网络软件,以确保系统的安全性和稳定性。

希望本文能够帮助您更好地理解和使用Fedora Linux 35的网络功能,充分发挥系统的潜力。如果您有任何问题或建议,欢迎在评论区留言讨论。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则