简体中文 繁體中文 English Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Japanese

站内搜索

搜索

活动公告

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

全面解析Fedora网络配置与优化技巧提升系统网络性能与稳定性解决常见网络连接问题

SunJu_FaceMall

3万

主题

2653

科技点

3万

积分

白金月票

碾压王

积分
32864

塔罗立华奏

发表于 2025-9-3 15:00:00 | 显示全部楼层 |阅读模式

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

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

x
引言

Fedora作为一款流行的Linux发行版,以其先进的技术和稳定性受到许多开发者和系统管理员的青睐。网络配置是任何操作系统中的关键组成部分,它直接影响到系统的可用性和性能。本文将全面解析Fedora系统中的网络配置方法,提供优化技巧以提升网络性能与稳定性,并针对常见的网络连接问题提供解决方案。无论您是Fedora的新手还是有经验的用户,本文都能帮助您更好地理解和配置Fedora的网络环境。

Fedora网络管理基础

NetworkManager介绍

Fedora系统主要使用NetworkManager作为网络管理工具,它是一个动态网络控制和配置守护进程,旨在在设备连接可用时保持网络设备和连接处于活动状态。NetworkManager提供了以下功能:

• 自动检测网络设备并管理连接
• 支持有线、无线、移动宽带等多种连接类型
• 提供命令行工具(nmcli)和图形界面(nm-connection-editor)进行网络配置
• 支持VPN连接、网络绑定、VLAN等高级网络功能

NetworkManager在Fedora中默认安装并启用,您可以通过以下命令检查其状态:
  1. systemctl status NetworkManager
复制代码

如果需要启动或重启NetworkManager服务,可以使用以下命令:
  1. sudo systemctl start NetworkManager
  2. sudo systemctl restart NetworkManager
复制代码

基本网络配置方法(GUI和CLI)

Fedora提供了多种方式进行网络配置,包括图形界面和命令行工具。

1. GNOME设置:在GNOME桌面环境中,您可以通过”设置” > “网络”来配置基本网络连接。在这里您可以:查看可用网络设备连接到可用的Wi-Fi网络配置有线连接设置网络代理配置VPN连接
2. 查看可用网络设备
3. 连接到可用的Wi-Fi网络
4. 配置有线连接
5. 设置网络代理
6. 配置VPN连接
7. nm-connection-editor:这是一个更高级的网络配置工具,提供了比GNOME设置更多的选项。您可以通过在终端中输入nm-connection-editor来启动它。

GNOME设置:在GNOME桌面环境中,您可以通过”设置” > “网络”来配置基本网络连接。在这里您可以:

• 查看可用网络设备
• 连接到可用的Wi-Fi网络
• 配置有线连接
• 设置网络代理
• 配置VPN连接

nm-connection-editor:这是一个更高级的网络配置工具,提供了比GNOME设置更多的选项。您可以通过在终端中输入nm-connection-editor来启动它。

1. nmcli:这是NetworkManager的命令行工具,功能强大且使用方便。以下是一些基本用法:显示所有网络连接:nmcli connection show显示网络设备状态:nmcli device status启动/停止网络连接:nmcli connection up <connection_name>
nmcli connection down <connection_name>创建新的有线连接:nmcli connection add type ethernet ifname <interface_name> con-name <connection_name>
2. 显示所有网络连接:nmcli connection show
3. 显示网络设备状态:nmcli device status
4. 启动/停止网络连接:nmcli connection up <connection_name>
nmcli connection down <connection_name>
5. 创建新的有线连接:nmcli connection add type ethernet ifname <interface_name> con-name <connection_name>
6. nmtui:这是一个基于文本的用户界面,适合在终端中使用。您可以通过在终端中输入nmtui来启动它。

nmcli:这是NetworkManager的命令行工具,功能强大且使用方便。以下是一些基本用法:

• 显示所有网络连接:nmcli connection show
• 显示网络设备状态:nmcli device status
• 启动/停止网络连接:nmcli connection up <connection_name>
nmcli connection down <connection_name>
• 创建新的有线连接:nmcli connection add type ethernet ifname <interface_name> con-name <connection_name>

显示所有网络连接:
  1. nmcli connection show
复制代码

显示网络设备状态:
  1. nmcli device status
复制代码

启动/停止网络连接:
  1. nmcli connection up <connection_name>
  2. nmcli connection down <connection_name>
复制代码

创建新的有线连接:
  1. nmcli connection add type ethernet ifname <interface_name> con-name <connection_name>
复制代码

nmtui:这是一个基于文本的用户界面,适合在终端中使用。您可以通过在终端中输入nmtui来启动它。

网络配置文件解析

NetworkManager将网络配置存储在/etc/NetworkManager/system-connections/目录下,每个连接都有一个对应的配置文件。这些文件通常以.nmconnection为扩展名,格式类似于INI文件。

以下是一个典型的有线连接配置文件示例:
  1. [connection]
  2. id=Wired connection 1
  3. uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  4. type=ethernet
  5. autoconnect=true
  6. interface-name=eth0
  7. [ethernet]
  8. mac-address=00:11:22:33:44:55
  9. [ipv4]
  10. method=auto
  11. [ipv6]
  12. method=auto
复制代码

• [connection]部分包含连接的基本信息,如ID、UUID、类型和自动连接设置。
• [ethernet]部分包含以太网特定设置,如MAC地址。
• [ipv4]和[ipv6]部分分别包含IPv4和IPv6的配置信息,如IP分配方法(自动或手动)。

您可以直接编辑这些文件来修改网络配置,但修改后需要重新加载NetworkManager:
  1. sudo nmcli connection reload
复制代码

Fedora网络配置详解

有线网络配置

有线网络通常是最稳定和最简单的网络连接方式。在Fedora中配置有线网络可以通过以下方法:

1. 查看可用的网络设备:nmcli device status
2. 创建新的有线连接:sudo nmcli connection add type ethernet ifname eth0 con-name "My Wired Connection"
3. 配置静态IP地址:sudo nmcli connection modify "My Wired Connection" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"
4. 启用连接:sudo nmcli connection up "My Wired Connection"

查看可用的网络设备:
  1. nmcli device status
复制代码

创建新的有线连接:
  1. sudo nmcli connection add type ethernet ifname eth0 con-name "My Wired Connection"
复制代码

配置静态IP地址:
  1. sudo nmcli connection modify "My Wired Connection" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"
复制代码

启用连接:
  1. sudo nmcli connection up "My Wired Connection"
复制代码

1. 启动nmtui:nmtui
2. 选择”编辑连接”并按Enter。
3. 选择”添加”并选择”以太网”。
4. 填写连接名称、设备名称,并配置IP地址、网关和DNS。
5. 选择”确定”保存配置。
6. 选择”返回”,然后选择”激活连接”,选择刚创建的连接并激活。

启动nmtui:
  1. nmtui
复制代码

选择”编辑连接”并按Enter。

选择”添加”并选择”以太网”。

填写连接名称、设备名称,并配置IP地址、网关和DNS。

选择”确定”保存配置。

选择”返回”,然后选择”激活连接”,选择刚创建的连接并激活。

您也可以直接编辑NetworkManager的配置文件来配置有线网络:

1. 创建或编辑配置文件:sudo nano /etc/NetworkManager/system-connections/My-Wired-Connection.nmconnection
2.
  1. 添加以下内容(根据您的网络环境调整):
  2. “`
  3. [connection]
  4. id=My Wired Connection
  5. type=ethernet
  6. interface-name=eth0
  7. autoconnect=true
复制代码

创建或编辑配置文件:
  1. sudo nano /etc/NetworkManager/system-connections/My-Wired-Connection.nmconnection
复制代码

添加以下内容(根据您的网络环境调整):
“`
[connection]
id=My Wired Connection
type=ethernet
interface-name=eth0
autoconnect=true

[ethernet]
   mac-address=00:11:22:33:44:55

[ipv4]
   method=manual
   address1=192.168.1.100⁄24,192.168.1.1
   dns=8.8.8.8;8.8.4.4;

[ipv6]
   method=auto
  1. 3. 保存文件并设置适当的权限:
  2.    ```bash
  3.    sudo chmod 600 /etc/NetworkManager/system-connections/My-Wired-Connection.nmconnection
复制代码

1. 重新加载NetworkManager:sudo nmcli connection reload
2. 激活连接:sudo nmcli connection up "My Wired Connection"

重新加载NetworkManager:
  1. sudo nmcli connection reload
复制代码

激活连接:
  1. sudo nmcli connection up "My Wired Connection"
复制代码

无线网络配置

无线网络配置在Fedora中同样简单,以下是几种配置方法:

1. 查看可用的Wi-Fi网络:nmcli device wifi list
2. 连接到Wi-Fi网络:sudo nmcli device wifi connect "SSID名称" password "密码"
3. 创建新的无线连接配置:sudo nmcli connection add type wifi ifname wlan0 con-name "My WiFi" ssid "SSID名称"
4. 配置无线连接的安全设置:sudo nmcli connection modify "My WiFi" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "密码"
5. 启用无线连接:sudo nmcli connection up "My WiFi"

查看可用的Wi-Fi网络:
  1. nmcli device wifi list
复制代码

连接到Wi-Fi网络:
  1. sudo nmcli device wifi connect "SSID名称" password "密码"
复制代码

创建新的无线连接配置:
  1. sudo nmcli connection add type wifi ifname wlan0 con-name "My WiFi" ssid "SSID名称"
复制代码

配置无线连接的安全设置:
  1. sudo nmcli connection modify "My WiFi" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "密码"
复制代码

启用无线连接:
  1. sudo nmcli connection up "My WiFi"
复制代码

1. 启动nmtui:nmtui
2. 选择”编辑连接”并按Enter。
3. 选择”添加”并选择”Wi-Fi”。
4. 填写连接名称、SSID,并选择安全模式(如WPA2)。
5. 输入密码并配置IP设置(如果需要静态IP)。
6. 选择”确定”保存配置。
7. 选择”返回”,然后选择”激活连接”,选择刚创建的连接并激活。

启动nmtui:
  1. nmtui
复制代码

选择”编辑连接”并按Enter。

选择”添加”并选择”Wi-Fi”。

填写连接名称、SSID,并选择安全模式(如WPA2)。

输入密码并配置IP设置(如果需要静态IP)。

选择”确定”保存配置。

选择”返回”,然后选择”激活连接”,选择刚创建的连接并激活。

您也可以直接编辑NetworkManager的配置文件来配置无线网络:

1. 创建或编辑配置文件:sudo nano /etc/NetworkManager/system-connections/My-WiFi.nmconnection
2.
  1. 添加以下内容(根据您的网络环境调整):
  2. “`
  3. [connection]
  4. id=My WiFi
  5. type=wifi
  6. interface-name=wlan0
  7. autoconnect=true
复制代码

创建或编辑配置文件:
  1. sudo nano /etc/NetworkManager/system-connections/My-WiFi.nmconnection
复制代码

添加以下内容(根据您的网络环境调整):
“`
[connection]
id=My WiFi
type=wifi
interface-name=wlan0
autoconnect=true

[wifi]
   mode=infrastructure
   ssid=SSID名称

[wifi-security]
   key-mgmt=wpa-psk
   psk=密码

[ipv4]
   method=auto

[ipv6]
   method=auto
  1. 3. 保存文件并设置适当的权限:
  2.    ```bash
  3.    sudo chmod 600 /etc/NetworkManager/system-connections/My-WiFi.nmconnection
复制代码

1. 重新加载NetworkManager:sudo nmcli connection reload
2. 激活连接:sudo nmcli connection up "My WiFi"

重新加载NetworkManager:
  1. sudo nmcli connection reload
复制代码

激活连接:
  1. sudo nmcli connection up "My WiFi"
复制代码

静态IP与动态IP配置

在Fedora中,您可以配置网络接口使用静态IP地址或动态获取IP地址(DHCP)。

静态IP配置适用于需要固定网络地址的服务器或特定设备。

使用nmcli配置静态IP:
  1. # 创建新的静态IP连接
  2. sudo nmcli connection add type ethernet ifname eth0 con-name "Static IP" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"
  3. # 修改现有连接为静态IP
  4. sudo nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"
  5. # 应用更改
  6. sudo nmcli connection up "Static IP"
复制代码

手动编辑配置文件配置静态IP:
  1. [connection]
  2. id=Static IP
  3. type=ethernet
  4. interface-name=eth0
  5. autoconnect=true
  6. [ipv4]
  7. method=manual
  8. address1=192.168.1.100/24,192.168.1.1
  9. dns=8.8.8.8;8.8.4.4;
  10. [ipv6]
  11. method=ignore
复制代码

动态IP配置适用于大多数客户端设备,IP地址由DHCP服务器自动分配。

使用nmcli配置动态IP:
  1. # 创建新的动态IP连接
  2. sudo nmcli connection add type ethernet ifname eth0 con-name "Dynamic IP" ipv4.method auto
  3. # 修改现有连接为动态IP
  4. sudo nmcli connection modify "Wired connection 1" ipv4.method auto
  5. # 应用更改
  6. sudo nmcli connection up "Dynamic IP"
复制代码

手动编辑配置文件配置动态IP:
  1. [connection]
  2. id=Dynamic IP
  3. type=ethernet
  4. interface-name=eth0
  5. autoconnect=true
  6. [ipv4]
  7. method=auto
  8. [ipv6]
  9. method=auto
复制代码

DNS配置

DNS(Domain Name System)配置对于网络访问至关重要,它将域名转换为IP地址。
  1. # 为特定连接配置DNS
  2. sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"
  3. # 为所有连接配置全局DNS
  4. sudo nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes
  5. sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"
  6. # 应用更改
  7. sudo nmcli connection up "Wired connection 1"
复制代码
  1. [connection]
  2. id=Wired connection 1
  3. type=ethernet
  4. interface-name=eth0
  5. autoconnect=true
  6. [ipv4]
  7. method=auto
  8. ignore-auto-dns=true
  9. dns=8.8.8.8;8.8.4.4;
复制代码

虽然NetworkManager管理DNS设置,但您也可以手动编辑/etc/resolv.conf文件:
  1. sudo nano /etc/resolv.conf
复制代码

添加以下内容:
  1. nameserver 8.8.8.8
  2. nameserver 8.8.4.4
复制代码

注意:直接编辑/etc/resolv.conf可能不是永久性的,因为NetworkManager可能会覆盖此文件。要永久更改DNS设置,最好使用NetworkManager的配置方法。

Fedora使用systemd-resolved作为本地DNS解析器,您可以通过编辑其配置文件来配置DNS:
  1. sudo nano /etc/systemd/resolved.conf
复制代码

取消注释并修改以下行:
  1. [Resolve]
  2. DNS=8.8.8.8 8.8.4.4
  3. FallbackDNS=1.1.1.1 9.9.9.10
复制代码

然后重启systemd-resolved服务:
  1. sudo systemctl restart systemd-resolved
复制代码

网络代理设置

网络代理设置对于需要通过代理服务器访问互联网的环境非常重要。

您可以通过设置环境变量来配置代理:
  1. # 设置HTTP代理
  2. export http_proxy="http://proxy.example.com:8080"
  3. # 设置HTTPS代理
  4. export https_proxy="https://proxy.example.com:8080"
  5. # 设置FTP代理
  6. export ftp_proxy="ftp://proxy.example.com:8080"
  7. # 设置不使用代理的地址
  8. export no_proxy="localhost,127.0.0.1,internal.example.com"
复制代码

要使这些设置永久生效,可以将它们添加到~/.bashrc或/etc/environment文件中。

使用nmcli设置代理:
  1. # 为特定连接设置代理
  2. sudo nmcli connection modify "Wired connection 1" proxy.http "http://proxy.example.com:8080" proxy.https "https://proxy.example.com:8080" proxy.ftp "ftp://proxy.example.com:8080" proxy.no-proxy "localhost,127.0.0.1,internal.example.com"
  3. # 应用更改
  4. sudo nmcli connection up "Wired connection 1"
复制代码

手动编辑配置文件设置代理:
  1. [connection]
  2. id=Wired connection 1
  3. type=ethernet
  4. interface-name=eth0
  5. autoconnect=true
  6. [proxy]
  7. method=manual
  8. http-proxy=proxy.example.com
  9. http-proxy-port=8080
  10. https-proxy=proxy.example.com
  11. https-proxy-port=8080
  12. ftp-proxy=proxy.example.com
  13. ftp-proxy-port=8080
  14. no-proxy="localhost,127.0.0.1,internal.example.com"
复制代码

在GNOME桌面环境中,您可以通过”设置” > “网络” > “网络代理”来配置代理设置。可以选择”自动”或”手动”配置方法。

网络性能优化技巧

网络参数调优

通过调整内核网络参数,可以显著提高网络性能。这些参数可以通过sysctl命令或编辑/etc/sysctl.conf文件来设置。
  1. # 编辑sysctl配置文件
  2. sudo nano /etc/sysctl.d/99-network.conf
复制代码

添加以下内容:
  1. # 增加TCP最大缓冲区大小
  2. net.core.rmem_max = 16777216
  3. net.core.wmem_max = 16777216
  4. # 增加TCP默认缓冲区大小
  5. net.ipv4.tcp_rmem = 4096 87380 16777216
  6. net.ipv4.tcp_wmem = 4096 65536 16777216
  7. # 启用TCP窗口缩放
  8. net.ipv4.tcp_window_scaling = 1
  9. # 启用TCP选择性确认
  10. net.ipv4.tcp_sack = 1
  11. # 启用TCP时间戳
  12. net.ipv4.tcp_timestamps = 1
  13. # 增加TCP最大连接数
  14. net.core.somaxconn = 65535
  15. # 启用TCP BBR拥塞控制算法
  16. net.core.default_qdisc = fq
  17. net.ipv4.tcp_congestion_control = bbr
  18. # 减少TCP连接超时时间
  19. net.ipv4.tcp_fin_timeout = 15
  20. # 启用TCP快速打开
  21. net.ipv4.tcp_fastopen = 3
  22. # 增加本地端口范围
  23. net.ipv4.ip_local_port_range = 10000 65535
  24. # 启用IP转发(如果系统用作路由器)
  25. net.ipv4.ip_forward = 1
复制代码

应用更改:
  1. sudo sysctl -p /etc/sysctl.d/99-network.conf
复制代码
  1. # 增加网络设备队列长度
  2. sudo ethtool -G eth0 rx 4096 tx 4096
  3. # 增加网络中断合并
  4. sudo ethtool -C eth0 rx-usecs 100 tx-usecs 100
复制代码

要使这些设置永久生效,可以创建一个systemd服务或NetworkManager dispatcher脚本。

网络缓存优化

优化网络缓存可以提高DNS解析和连接性能。

Fedora默认使用systemd-resolved作为DNS解析器,它提供DNS缓存功能。您可以通过以下方式优化DNS缓存:
  1. # 编辑systemd-resolved配置
  2. sudo nano /etc/systemd/resolved.conf
复制代码

修改以下参数:
  1. [Resolve]
  2. # 增加DNS缓存大小
  3. CacheSize=1000
  4. # 启用DNSSEC验证
  5. DNSSEC=yes
  6. # 设置DNS超时时间
  7. DNSStubListenerExtraPort=5353
复制代码

重启systemd-resolved服务:
  1. sudo systemctl restart systemd-resolved
复制代码

您也可以安装并配置本地DNS缓存服务器,如dnsmasq或unbound:

安装并配置dnsmasq:
  1. # 安装dnsmasq
  2. sudo dnf install dnsmasq
  3. # 备份原始配置文件
  4. sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
  5. # 编辑配置文件
  6. sudo nano /etc/dnsmasq.conf
复制代码

添加以下内容:
  1. # 监听本地接口
  2. listen-address=127.0.0.1
  3. # 设置上游DNS服务器
  4. server=8.8.8.8
  5. server=8.8.4.4
  6. # 增加缓存大小
  7. cache-size=1000
  8. # 启用日志
  9. log-queries
复制代码

启动并启用dnsmasq服务:
  1. sudo systemctl start dnsmasq
  2. sudo systemctl enable dnsmasq
复制代码

配置NetworkManager使用本地dnsmasq:
  1. sudo nmcli connection modify "Wired connection 1" ipv4.dns "127.0.0.1"
  2. sudo nmcli connection up "Wired connection 1"
复制代码

网络连接数优化

增加网络连接数可以提高系统的并发处理能力。
  1. # 查看当前文件描述符限制
  2. ulimit -n
  3. # 临时增加文件描述符限制
  4. ulimit -n 65536
  5. # 永久增加文件描述符限制,编辑limits.conf
  6. sudo nano /etc/security/limits.conf
复制代码

添加以下内容:
  1. * soft nofile 65536
  2. * hard nofile 65536
复制代码
  1. # 编辑sysctl配置文件
  2. sudo nano /etc/sysctl.d/99-network.conf
复制代码

添加以下内容:
  1. # 增加TCP最大连接数
  2. net.core.somaxconn = 65535
  3. # 增加TCP最大半连接数
  4. net.ipv4.tcp_max_syn_backlog = 65536
  5. # 增加TIME_WAIT连接数
  6. net.ipv4.tcp_max_tw_buckets = 2000000
  7. # 启用TIME_WAIT连接重用
  8. net.ipv4.tcp_tw_reuse = 1
  9. # 启用TIME_WAIT连接快速回收
  10. net.ipv4.tcp_tw_recycle = 0  # 注意:在NAT环境中不建议启用
  11. # 减少TIME_WAIT等待时间
  12. net.ipv4.tcp_fin_timeout = 10
  13. # 增加本地端口范围
  14. net.ipv4.ip_local_port_range = 10000 65535
复制代码

应用更改:
  1. sudo sysctl -p /etc/sysctl.d/99-network.conf
复制代码

高级网络功能(如QoS、流量控制)

tc(Traffic Control)是Linux内核中的流量控制工具,可以用于实现QoS(Quality of Service)。

限制特定端口的带宽:
  1. # 安装tc工具
  2. sudo dnf install iproute-tc
  3. # 创建根队列
  4. sudo tc qdisc add dev eth0 root handle 1: htb default 30
  5. # 创建主类
  6. sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit
  7. # 创建子类
  8. sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 500mbit ceil 1000mbit
  9. sudo tc class add dev eth0 parent 1:1 classid 1:20 htb rate 300mbit ceil 500mbit
  10. sudo tc class add dev eth0 parent 1:1 classid 1:30 htb rate 200mbit ceil 300mbit
  11. # 创建过滤器
  12. sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
  13. sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 443 0xffff flowid 1:20
复制代码

删除所有tc规则:
  1. sudo tc qdisc del dev eth0 root
复制代码

WonderShaper是一个简单的带宽限制工具,基于tc实现。
  1. # 安装WonderShaper
  2. sudo dnf install wondershaper
  3. # 限制上传和下载速度
  4. sudo wondershaper eth0 1000 5000  # 上传1000Kbps,下载5000Kbps
  5. # 清除限制
  6. sudo wondershaper clear eth0
复制代码

nftables是新一代的Linux数据包过滤框架,可以替代iptables。
  1. # 安装nftables
  2. sudo dnf install nftables
  3. # 启动nftables服务
  4. sudo systemctl start nftables
  5. sudo systemctl enable nftables
  6. # 创建一个简单的限速规则
  7. sudo nft add table netdev
  8. sudo nft add chain netdev ingress { type filter hook ingress device eth0 priority 0\; }
  9. sudo nft add rule netdev ingress limit rate over 50 mbytes/second drop
复制代码

常见网络问题及解决方案

无法连接到网络

当Fedora系统无法连接到网络时,可以按照以下步骤进行排查:
  1. # 查看网络接口状态
  2. ip a
  3. # 或使用ifconfig(如果已安装)
  4. ifconfig
复制代码

确保网络接口已启用并分配了IP地址。
  1. # 检查NetworkManager服务状态
  2. systemctl status NetworkManager
  3. # 如果服务未运行,启动它
  4. sudo systemctl start NetworkManager
  5. sudo systemctl enable NetworkManager
复制代码
  1. # 列出所有网络连接
  2. nmcli connection show
  3. # 检查特定连接的配置
  4. nmcli connection show "连接名称"
  5. # 激活连接
  6. sudo nmcli connection up "连接名称"
复制代码
  1. # 查看路由表
  2. ip route
  3. # 或使用route命令(如果已安装)
  4. route -n
复制代码

确保有默认路由指向网关。
  1. # 测试DNS解析
  2. nslookup example.com
  3. # 或使用dig命令(如果已安装)
  4. dig example.com
复制代码

如果DNS解析失败,检查/etc/resolv.conf文件中的DNS服务器设置。
  1. # 测试网关连通性
  2. ping 192.168.1.1  # 替换为您的网关IP
  3. # 测试外部网络连通性
  4. ping 8.8.8.8
  5. # 测试域名解析
  6. ping example.com
复制代码

如果以上步骤都无法解决问题,可以尝试重置网络配置:
  1. # 备份当前网络配置
  2. sudo cp -r /etc/NetworkManager/system-connections /root/
  3. # 删除所有网络连接
  4. sudo rm /etc/NetworkManager/system-connections/*
  5. # 重启NetworkManager
  6. sudo systemctl restart NetworkManager
  7. # 重新配置网络连接
  8. sudo nmcli connection add type ethernet ifname eth0 con-name "Wired connection 1"
复制代码

网络速度慢

当Fedora系统的网络速度较慢时,可以尝试以下优化方法:
  1. # 安装speedtest-cli
  2. sudo dnf install speedtest-cli
  3. # 运行速度测试
  4. speedtest-cli
复制代码
  1. # 检查网络接口速度和双工模式
  2. sudo ethtool eth0
  3. # 如果需要,设置网络接口速度和双工模式
  4. sudo ethtool -s eth0 speed 1000 duplex full
复制代码
  1. # 检查网络接口统计信息
  2. cat /proc/net/dev
  3. # 检查网络连接数
  4. ss -s
复制代码

参考前面”网络参数调优”部分,调整内核网络参数以提高网络性能。
  1. # 检查是否有占用带宽的进程
  2. sudo nethogs
  3. # 或使用iftop监控网络流量
  4. sudo dnf install iftop
  5. sudo iftop -i eth0
复制代码

无线连接问题

无线连接问题在Fedora系统中比较常见,以下是解决方法:
  1. # 检查无线网卡是否被识别
  2. ip a
  3. # 检查无线网卡是否被启用
  4. rfkill list
复制代码

如果无线网卡被禁用,可以使用以下命令启用:
  1. sudo rfkill unblock wifi
复制代码
  1. # 检查无线网卡驱动
  2. lspci -k | grep -iA3 net
  3. # 或使用lsusb(对于USB无线网卡)
  4. lsusb
复制代码

如果驱动未安装或有问题,可以尝试安装或更新驱动:
  1. # 安装额外的无线驱动
  2. sudo dnf install kmod-wl
  3. # 对于Broadcom无线网卡
  4. sudo dnf install broadcom-wl
复制代码
  1. # 列出可用的无线网络
  2. nmcli device wifi list
  3. # 连接到无线网络
  4. sudo nmcli device wifi connect "SSID名称" password "密码"
复制代码
  1. # 重启NetworkManager
  2. sudo systemctl restart NetworkManager
  3. # 重置无线接口
  4. sudo ip link set wlan0 down
  5. sudo ip link set wlan0 up
复制代码
  1. # 查看系统日志
  2. journalctl -b -u NetworkManager
  3. # 查看内核日志
  4. dmesg | grep iwlwifi  # 替换为您的无线驱动名称
复制代码

DNS解析问题

DNS解析问题会导致无法通过域名访问网站,以下是解决方法:
  1. # 检查/etc/resolv.conf文件
  2. cat /etc/resolv.conf
  3. # 检查systemd-resolved状态
  4. systemctl status systemd-resolved
复制代码
  1. # 使用nslookup测试
  2. nslookup example.com
  3. # 使用dig测试
  4. dig example.com
  5. # 使用host测试
  6. host example.com
复制代码
  1. # 使用nmcli更改DNS服务器
  2. sudo nmcli connection modify "连接名称" ipv4.dns "8.8.8.8 8.8.4.4"
  3. sudo nmcli connection up "连接名称"
  4. # 或手动编辑/etc/resolv.conf
  5. sudo nano /etc/resolv.conf
复制代码

添加以下内容:
  1. nameserver 8.8.8.8
  2. nameserver 8.8.4.4
复制代码
  1. # 清除systemd-resolved缓存
  2. sudo systemd-resolve --flush-caches
  3. # 或重启systemd-resolved服务
  4. sudo systemctl restart systemd-resolved
复制代码

如果怀疑是IPv6导致的DNS问题,可以尝试禁用IPv6:
  1. # 临时禁用IPv6
  2. sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
  3. sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
  4. # 永久禁用IPv6
  5. echo "net.ipv6.conf.all.disable_ipv6=1" | sudo tee -a /etc/sysctl.conf
  6. echo "net.ipv6.conf.default.disable_ipv6=1" | sudo tee -a /etc/sysctl.conf
  7. sudo sysctl -p
复制代码

网络不稳定问题

网络不稳定可能导致连接频繁断开或延迟高,以下是解决方法:
  1. # 检查网络接口错误
  2. cat /proc/net/dev
  3. # 检查网络接口统计信息
  4. sudo ethtool -S eth0
复制代码

确保网络电缆连接牢固,没有损坏。对于无线连接,确保信号强度良好。
  1. # 编辑sysctl配置文件
  2. sudo nano /etc/sysctl.d/99-network.conf
复制代码

添加以下内容:
  1. # 增加TCP超时时间
  2. net.ipv4.tcp_retries2 = 5
  3. # 减少TCP keepalive时间
  4. net.ipv4.tcp_keepalive_time = 60
  5. net.ipv4.tcp_keepalive_intvl = 10
  6. net.ipv4.tcp_keepalive_probes = 6
  7. # 启用TCP快速打开
  8. net.ipv4.tcp_fastopen = 3
  9. # 启用TCP BBR拥塞控制算法
  10. net.core.default_qdisc = fq
  11. net.ipv4.tcp_congestion_control = bbr
复制代码

应用更改:
  1. sudo sysctl -p /etc/sysctl.d/99-network.conf
复制代码

对于无线连接,检查是否有其他设备干扰Wi-Fi信号。可以使用以下工具分析无线环境:
  1. # 安装无线分析工具
  2. sudo dnf install wifi-radar
  3. # 扫描无线网络
  4. sudo wifi-radar
复制代码
  1. # 检查NetworkManager日志
  2. journalctl -b -u NetworkManager
  3. # 检查网络接口日志
  4. dmesg | grep eth0
复制代码

网络安全配置

防火墙配置

Fedora使用firewalld作为默认的防火墙管理工具,它提供了动态管理的防火墙,支持网络/防火墙区域定义。
  1. # 检查firewalld状态
  2. sudo systemctl status firewalld
  3. # 启动并启用firewalld
  4. sudo systemctl start firewalld
  5. sudo systemctl enable firewalld
  6. # 查看当前活动的区域
  7. sudo firewall-cmd --get-active-zones
  8. # 查看默认区域
  9. sudo firewall-cmd --get-default-zone
  10. # 查看当前区域的规则
  11. sudo firewall-cmd --list-all
复制代码
  1. # 开放单个端口
  2. sudo firewall-cmd --permanent --add-port=80/tcp
  3. # 开放端口范围
  4. sudo firewall-cmd --permanent --add-port=8000-9000/tcp
  5. # 开放服务
  6. sudo firewall-cmd --permanent --add-service=http
  7. sudo firewall-cmd --permanent --add-service=https
  8. # 重新加载防火墙规则
  9. sudo firewall-cmd --reload
复制代码
  1. # 列出所有可用区域
  2. sudo firewall-cmd --get-zones
  3. # 将网络接口分配到特定区域
  4. sudo firewall-cmd --permanent --zone=public --change-interface=eth0
  5. # 设置默认区域
  6. sudo firewall-cmd --set-default-zone=public
复制代码
  1. # 端口转发
  2. sudo firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
  3. # 丰富的规则(rich rules)
  4. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="http" accept'
  5. # 阻止特定IP地址
  6. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
复制代码

如果您更喜欢使用nftables,可以禁用firewalld并使用nftables:
  1. # 停止并禁用firewalld
  2. sudo systemctl stop firewalld
  3. sudo systemctl mask firewalld
  4. # 安装并启用nftables
  5. sudo dnf install nftables
  6. sudo systemctl start nftables
  7. sudo systemctl enable nftables
  8. # 创建简单的防火墙规则
  9. sudo nft add table inet filter
  10. sudo nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
  11. sudo nft add rule inet filter input iifname lo accept
  12. sudo nft add rule inet filter input ct state related,established accept
  13. sudo nft add rule inet filter input tcp dport { 22, 80, 443 } accept
  14. sudo nft add rule inet filter input icmp type echo-request accept
  15. # 保存规则
  16. sudo nft list ruleset > /etc/nftables.conf
复制代码

网络安全最佳实践
  1. # 编辑SSH配置文件
  2. sudo nano /etc/ssh/sshd_config
复制代码

修改以下参数:
  1. # 禁用root登录
  2. PermitRootLogin no
  3. # 更改默认端口
  4. Port 2222
  5. # 只允许特定用户登录
  6. AllowUsers user1 user2
  7. # 禁用密码认证,使用密钥认证
  8. PasswordAuthentication no
  9. PubkeyAuthentication yes
  10. # 设置登录超时时间
  11. LoginGraceTime 60
复制代码

重启SSH服务:
  1. sudo systemctl restart sshd
复制代码
  1. # 安装fail2ban
  2. sudo dnf install fail2ban
  3. # 创建本地配置文件
  4. sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  5. # 编辑配置文件
  6. sudo nano /etc/fail2ban/jail.local
复制代码

修改以下参数:
  1. [DEFAULT]
  2. # 封禁时间(秒)
  3. bantime = 3600
  4. # 找到失败次数后的封禁
  5. findtime = 600
  6. maxretry = 3
  7. [sshd]
  8. enabled = true
  9. port = 2222  # 如果您更改了SSH端口
复制代码

启动并启用fail2ban服务:
  1. sudo systemctl start fail2ban
  2. sudo systemctl enable fail2ban
复制代码
  1. # 安装OpenVPN
  2. sudo dnf install openvpn
  3. # 配置OpenVPN服务器
  4. sudo cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/
  5. # 编辑服务器配置
  6. sudo nano /etc/openvpn/server.conf
复制代码

修改以下参数:
  1. port 1194
  2. proto udp
  3. dev tun
  4. ca ca.crt
  5. cert server.crt
  6. key server.key
  7. dh dh.pem
  8. server 10.8.0.0 255.255.255.0
  9. ifconfig-pool-persist /var/log/openvpn/ipp.txt
  10. push "redirect-gateway def1 bypass-dhcp"
  11. push "dhcp-option DNS 8.8.8.8"
  12. keepalive 10 120
  13. cipher AES-256-CBC
  14. user nobody
  15. group nobody
  16. persist-key
  17. persist-tun
  18. status /var/log/openvpn/openvpn-status.log
  19. verb 3
复制代码

启动并启用OpenVPN服务:
  1. sudo systemctl start openvpn@server
  2. sudo systemctl enable openvpn@server
复制代码
  1. # 安装stunnel(SSL加密隧道)
  2. sudo dnf install stunnel
  3. # 创建stunnel配置文件
  4. sudo nano /etc/stunnel/stunnel.conf
复制代码

添加以下内容:
  1. [https]
  2. accept = 443
  3. connect = 80
  4. cert = /etc/stunnel/stunnel.pem
复制代码

启动stunnel服务:
  1. sudo systemctl start stunnel
  2. sudo systemctl enable stunnel
复制代码

高级网络配置

网络绑定与聚合

网络绑定(Bonding)或链路聚合(Link Aggregation)可以将多个网络接口组合成一个逻辑接口,提高带宽和冗余性。
  1. # 安装绑定工具
  2. sudo dnf install teamd
  3. # 创建绑定接口
  4. sudo nmcli connection add type bond con-name bond0 ifname bond0 mode balance-rr
  5. # 添加从接口到绑定
  6. sudo nmcli connection add type ethernet slave-type bond con-name bond-slave-eth0 ifname eth0 master bond0
  7. sudo nmcli connection add type ethernet slave-type bond con-name bond-slave-eth1 ifname eth1 master bond0
  8. # 配置IP地址
  9. sudo nmcli connection modify bond0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual
  10. # 激活连接
  11. sudo nmcli connection up bond0
复制代码

网络绑定支持多种模式,每种模式适用于不同的场景:

1. balance-rr (0): 轮询模式,数据包按顺序依次从每个接口发送。
2. active-backup (1): 活动备份模式,只有一个接口处于活动状态,其他接口作为备份。
3. balance-xor (2): XOR模式,根据源和目标MAC地址的XOR选择接口。
4. broadcast (3): 广播模式,所有数据包从所有接口发送。
5. 802.3ad (4): LACP模式,需要交换机支持LACP协议。
6. balance-tlb (5): 自适应传输负载均衡模式。
7. balance-alb (6): 自适应负载均衡模式,包括传输和接收负载均衡。
  1. # 查看绑定状态
  2. cat /proc/net/bonding/bond0
  3. # 或使用teamdctl(如果使用teamd)
  4. sudo teamdctl bond0 state
复制代码

VLAN配置

VLAN(Virtual Local Area Network)允许在物理网络上创建逻辑分段,提高网络的安全性和性能。
  1. # 创建VLAN接口
  2. sudo nmcli connection add type vlan con-name vlan100 dev eth0 id 100
  3. # 配置VLAN接口IP地址
  4. sudo nmcli connection modify vlan100 ipv4.addresses 192.168.100.10/24 ipv4.method manual
  5. # 激活VLAN接口
  6. sudo nmcli connection up vlan100
复制代码
  1. # 创建VLAN标记的接口
  2. sudo nmcli connection add type vlan con-name vlan200 dev eth0 id 200
  3. # 配置VLAN标记接口IP地址
  4. sudo nmcli connection modify vlan200 ipv4.addresses 192.168.200.10/24 ipv4.method manual
  5. # 激活VLAN标记接口
  6. sudo nmcli connection up vlan200
复制代码
  1. # 查看VLAN接口
  2. ip a show vlan100
  3. # 查看VLAN信息
  4. cat /proc/net/vlan/config
复制代码

虚拟网络配置

虚拟网络配置对于虚拟化和容器环境非常重要。
  1. # 安装网桥工具
  2. sudo dnf install bridge-utils
  3. # 创建网桥
  4. sudo nmcli connection add type bridge con-name br0 ifname br0
  5. # 配置网桥IP地址
  6. sudo nmcli connection modify br0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual
  7. # 添加物理接口到网桥
  8. sudo nmcli connection add type ethernet slave-type bridge con-name bridge-slave-eth0 ifname eth0 master br0
  9. # 激活连接
  10. sudo nmcli connection up br0
复制代码
  1. # 创建虚拟以太网对
  2. sudo ip link add veth0 type veth peer name veth1
  3. # 配置虚拟以太网对
  4. sudo ip addr add 192.168.2.1/24 dev veth0
  5. sudo ip addr add 192.168.2.2/24 dev veth1
  6. # 启用虚拟以太网对
  7. sudo ip link set veth0 up
  8. sudo ip link set veth1 up
复制代码
  1. # 创建网络命名空间
  2. sudo ip netns add ns1
  3. # 在命名空间中创建虚拟接口
  4. sudo ip link add veth-ns1 type veth peer name veth-root
  5. # 将虚拟接口移动到命名空间
  6. sudo ip link set veth-ns1 netns ns1
  7. # 配置命名空间中的接口
  8. sudo ip netns exec ns1 ip addr add 192.168.3.1/24 dev veth-ns1
  9. sudo ip netns exec ns1 ip link set veth-ns1 up
  10. sudo ip netns exec ns1 ip link set lo up
  11. # 配置主机端的接口
  12. sudo ip addr add 192.168.3.2/24 dev veth-root
  13. sudo ip link set veth-root up
  14. # 在命名空间中测试网络连接
  15. sudo ip netns exec ns1 ping 192.168.3.2
复制代码

Open vSwitch是一个高质量的多层虚拟交换机,适用于虚拟化环境。
  1. # 安装Open vSwitch
  2. sudo dnf install openvswitch
  3. # 启动并启用Open vSwitch服务
  4. sudo systemctl start openvswitch
  5. sudo systemctl enable openvswitch
  6. # 创建虚拟交换机
  7. sudo ovs-vsctl add-br br0
  8. # 添加物理接口到虚拟交换机
  9. sudo ovs-vsctl add-port br0 eth0
  10. # 创建虚拟接口
  11. sudo ovs-vsctl add-port br0 veth0 -- set interface veth0 type=internal
  12. # 配置虚拟接口IP地址
  13. sudo ip addr add 192.168.4.1/24 dev veth0
  14. sudo ip link set veth0 up
  15. # 查看Open vSwitch配置
  16. sudo ovs-vsctl show
复制代码

总结与建议

Fedora系统提供了强大而灵活的网络配置和管理工具,通过本文的介绍,您应该已经掌握了Fedora网络配置的基本方法和高级技巧。以下是一些总结和建议:

1. 选择合适的配置工具:根据您的需求和使用场景,选择合适的网络配置工具。对于桌面用户,GNOME设置和nm-connection-editor提供了简单易用的图形界面;对于服务器管理员,nmcli和直接编辑配置文件提供了更强大的功能和灵活性。
2. 优化网络性能:通过调整内核网络参数、优化DNS缓存、增加网络连接数等方法,可以显著提高网络性能。特别是在高负载的服务器环境中,这些优化措施尤为重要。
3. 解决网络问题:当遇到网络问题时,按照系统的方法进行排查:检查硬件、检查驱动、检查配置、检查服务、检查日志。大多数网络问题都可以通过这些步骤找到原因并解决。
4. 保障网络安全:配置防火墙、使用SSH安全配置、防止暴力破解、使用VPN保护网络连接等安全措施,可以有效保护您的系统免受网络攻击。
5. 利用高级网络功能:根据需要,可以利用网络绑定、VLAN、虚拟网络等高级网络功能,提高网络的性能、可靠性和灵活性。
6. 保持系统更新:定期更新系统和网络相关的软件包,以获得最新的功能和安全修复。
7. 备份重要配置:在进行重要的网络配置更改之前,备份当前的配置文件,以便在出现问题时可以快速恢复。

选择合适的配置工具:根据您的需求和使用场景,选择合适的网络配置工具。对于桌面用户,GNOME设置和nm-connection-editor提供了简单易用的图形界面;对于服务器管理员,nmcli和直接编辑配置文件提供了更强大的功能和灵活性。

优化网络性能:通过调整内核网络参数、优化DNS缓存、增加网络连接数等方法,可以显著提高网络性能。特别是在高负载的服务器环境中,这些优化措施尤为重要。

解决网络问题:当遇到网络问题时,按照系统的方法进行排查:检查硬件、检查驱动、检查配置、检查服务、检查日志。大多数网络问题都可以通过这些步骤找到原因并解决。

保障网络安全:配置防火墙、使用SSH安全配置、防止暴力破解、使用VPN保护网络连接等安全措施,可以有效保护您的系统免受网络攻击。

利用高级网络功能:根据需要,可以利用网络绑定、VLAN、虚拟网络等高级网络功能,提高网络的性能、可靠性和灵活性。

保持系统更新:定期更新系统和网络相关的软件包,以获得最新的功能和安全修复。

备份重要配置:在进行重要的网络配置更改之前,备份当前的配置文件,以便在出现问题时可以快速恢复。

通过合理配置和优化Fedora系统的网络设置,您可以获得更高的网络性能、更好的稳定性和更强的安全性,从而提高工作效率和用户体验。希望本文能够帮助您更好地理解和管理Fedora系统的网络配置。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

手机版|联系我们|小黑屋|TG频道|RSS |网站地图

Powered by Pixtech

© 2025-2026 Pixtech Team.

>