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

站内搜索

搜索

活动公告

通知:为庆祝网站一周年,将在5.1日与5.2日开放注册,具体信息请见后续详细公告
04-22 00:04
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Ubuntu 20.04网络配置完全指南从基础设置到高级网络管理解决常见连接问题提高系统稳定性适合新手和系统管理员

SunJu_FaceMall

3万

主题

1158

科技点

3万

积分

白金月票

碾压王

积分
32796

立华奏

发表于 2025-8-24 19:30:01 | 显示全部楼层 |阅读模式

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

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

x
引言

Ubuntu 20.04 LTS(Focal Fossa)是一个广泛使用的Linux发行版,以其稳定性和用户友好的特性而闻名。网络配置是系统管理中的关键环节,无论是个人用户还是系统管理员,都需要掌握网络配置技能以确保系统连接的稳定性和安全性。本文将全面介绍Ubuntu 20.04的网络配置,从基础设置到高级网络管理,帮助读者解决常见连接问题,提高系统稳定性。无论您是刚接触Linux的新手,还是经验丰富的系统管理员,本文都能为您提供有价值的参考。

Ubuntu 20.04网络基础

网络概念和术语

在深入Ubuntu 20.04网络配置之前,我们需要了解一些基本的网络概念和术语:

1. IP地址:网络中设备的唯一标识符,分为IPv4和IPv6两种格式。
2. 子网掩码:用于确定IP地址的网络部分和主机部分。
3. 默认网关:数据包发送到其他网络时的出口点。
4. DNS服务器:将域名解析为IP地址的服务器。
5. DHCP:动态主机配置协议,自动分配网络配置的协议。
6. 静态IP:手动配置的固定IP地址。
7. MAC地址:网络接口控制器的硬件唯一标识符。

Ubuntu 20.04网络架构概述

Ubuntu 20.04引入了Netplan作为默认的网络配置工具,它是一个基于YAML的网络配置抽象层,可以生成后端网络配置(如NetworkManager或systemd-networkd)所需的配置文件。Netplan的配置文件通常位于/etc/netplan/目录下,扩展名为.yaml。

Ubuntu 20.04中的主要网络组件包括:

1. Netplan:网络配置工具,用于定义网络接口的配置。
2. NetworkManager:动态网络控制和配置守护进程,适用于桌面环境。
3. systemd-networkd:系统网络服务,适用于服务器环境。
4. netctl:网络配置管理工具(在某些Ubuntu版本中可用)。
5. ifupdown:传统的网络接口管理工具(在早期Ubuntu版本中使用)。

基础网络配置

使用图形界面配置网络

对于桌面用户,Ubuntu 20.04提供了直观的图形界面来配置网络设置:

1. 点击屏幕右上角的网络图标。
2. 选择”有线连接”或”Wi-Fi”(取决于您的连接类型)。
3. 点击”连接信息”查看当前连接状态。
4. 要修改设置,点击”有线设置”或”Wi-Fi设置”。
5. 选择您的网络连接,然后点击齿轮图标。
6. 在”IPv4”或”IPv6”选项卡中,可以选择自动(DHCP)或手动(静态)配置。
7. 如果选择手动配置,输入IP地址、子网掩码、网关和DNS服务器信息。
8. 点击”应用”保存设置。

使用命令行配置网络

对于服务器环境或喜欢使用命令行的用户,Ubuntu 20.04提供了多种命令行工具来配置网络:
  1. # 列出所有网络连接
  2. nmcli connection show
  3. # 显示活动连接
  4. nmcli connection show --active
  5. # 创建新的有线连接
  6. nmcli connection add type ethernet ifname enp0s3 con-name my-connection
  7. # 配置静态IP
  8. nmcli connection modify my-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
  9. # 启用连接
  10. nmcli connection up my-connection
  11. # 禁用连接
  12. nmcli connection down my-connection
复制代码
  1. # 显示网络接口信息
  2. ip addr show
  3. # 为接口分配IP地址
  4. sudo ip addr add 192.168.1.100/24 dev enp0s3
  5. # 启用网络接口
  6. sudo ip link set enp0s3 up
  7. # 添加默认路由
  8. sudo ip route add default via 192.168.1.1
  9. # 显示路由表
  10. ip route show
复制代码
  1. # 安装net-tools
  2. sudo apt update
  3. sudo apt install net-tools
  4. # 显示网络接口信息
  5. ifconfig
  6. # 为接口分配IP地址
  7. sudo ifconfig enp0s3 192.168.1.100 netmask 255.255.255.0
  8. # 启用网络接口
  9. sudo ifconfig enp0s3 up
  10. # 添加默认路由
  11. sudo route add default gw 192.168.1.1
复制代码

Netplan配置详解

Netplan是Ubuntu 20.04中的默认网络配置工具,它使用YAML格式的配置文件来定义网络接口的设置。

Netplan配置文件位于/etc/netplan/目录下,通常命名为01-netcfg.yaml或类似名称。一个基本的Netplan配置文件结构如下:
  1. # This file is generated from information provided by the datasource. Changes
  2. # to it will not persist across an instance reboot. To disable cloud-init's
  3. # network configuration capabilities, write a file
  4. # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
  5. # network: {config: disabled}
  6. network:
  7.     version: 2
  8.     renderer: networkd
  9.     ethernets:
  10.         enp0s3:
  11.             dhcp4: yes
复制代码

要配置网络接口使用DHCP获取IP地址:
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: yes
  7.             optional: true
复制代码

要配置网络接口使用静态IP地址:
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.             addresses:
  8.                 - 192.168.1.100/24
  9.             gateway4: 192.168.1.1
  10.             nameservers:
  11.                 addresses: [8.8.8.8, 8.8.4.4]
复制代码

要为网络接口配置多个IP地址:
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.             addresses:
  8.                 - 192.168.1.100/24
  9.                 - 192.168.1.101/24
  10.             gateway4: 192.168.1.1
  11.             nameservers:
  12.                 addresses: [8.8.8.8, 8.8.4.4]
复制代码

修改Netplan配置文件后,需要应用配置使其生效:
  1. # 测试配置(检查是否有语法错误)
  2. sudo netplan try
  3. # 应用配置
  4. sudo netplan apply
  5. # 如果应用配置后出现问题,可以重新生成配置
  6. sudo netplan generate
复制代码

Netplan支持使用NetworkManager作为后端渲染器,这对于桌面环境特别有用:
  1. network:
  2.     version: 2
  3.     renderer: NetworkManager
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: yes
复制代码

使用Netplan配置无线网络:
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     wifis:
  5.         wlp3s0:
  6.             dhcp4: yes
  7.             access-points:
  8.                 "network_ssid_name":
  9.                     password: "password_here"
复制代码

要配置IPv6地址:
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.             dhcp6: yes
  8.             addresses:
  9.                 - 192.168.1.100/24
  10.             gateway4: 192.168.1.1
  11.             nameservers:
  12.                 addresses: [8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844]
复制代码

高级网络管理

网络绑定和聚合

网络绑定(Bonding)或链路聚合(Link Aggregation)是将多个网络接口组合成一个逻辑接口的技术,可以提供冗余和增加带宽。
  1. sudo apt update
  2. sudo apt install ifenslave
复制代码
  1. sudo modprobe bonding
复制代码
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.         enp0s4:
  8.             dhcp4: no
  9.     bonds:
  10.         bond0:
  11.             dhcp4: no
  12.             interfaces:
  13.                 - enp0s3
  14.                 - enp0s4
  15.             parameters:
  16.                 mode: balance-rr
  17.                 lacp-rate: fast
  18.             addresses:
  19.                 - 192.168.1.100/24
  20.             gateway4: 192.168.1.1
  21.             nameservers:
  22.                 addresses: [8.8.8.8, 8.8.4.4]
复制代码

网络绑定支持多种模式,每种模式提供不同的特性:

1. mode=0 (balance-rr):轮询模式,数据包按顺序依次从每个接口发送。
2. mode=1 (active-backup):主备模式,只有一个接口处于活动状态,当活动接口故障时,备用接口接管。
3. mode=2 (balance-xor):XOR模式,根据源MAC地址和目标MAC地址的XOR结果选择接口。
4. mode=3 (broadcast):广播模式,所有数据包从所有接口发送。
5. mode=4 (802.3ad):LACP模式,需要交换机支持LACP协议。
6. mode=5 (balance-tlb):自适应传输负载均衡,根据每个接口的负载分配传出流量。
7. mode=6 (balance-alb):自适应负载均衡,包括传输和接收负载均衡。
  1. # 查看绑定状态
  2. cat /proc/net/bonding/bond0
  3. # 查看网络接口状态
  4. ip addr show bond0
复制代码

VLAN配置

虚拟局域网(VLAN)是一种将物理网络划分为多个逻辑网络的技术,可以提高网络安全性和性能。
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.     vlans:
  8.         vlan10:
  9.             id: 10
  10.             link: enp0s3
  11.             addresses:
  12.                 - 192.168.10.100/24
  13.             gateway4: 192.168.10.1
  14.             nameservers:
  15.                 addresses: [8.8.8.8, 8.8.4.4]
  16.         vlan20:
  17.             id: 20
  18.             link: enp0s3
  19.             addresses:
  20.                 - 192.168.20.100/24
  21.             gateway4: 192.168.20.1
  22.             nameservers:
  23.                 addresses: [8.8.8.8, 8.8.4.4]
复制代码
  1. # 查看VLAN接口状态
  2. ip addr show vlan10
  3. ip addr show vlan20
  4. # 查看VLAN信息
  5. cat /proc/net/vlan/config
复制代码

网络桥接

网络桥接是将多个网络接口连接在一起,使它们在数据链路层上表现为单个网络的技术。
  1. sudo apt update
  2. sudo apt install bridge-utils
复制代码
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.         enp0s4:
  8.             dhcp4: no
  9.     bridges:
  10.         br0:
  11.             dhcp4: no
  12.             interfaces:
  13.                 - enp0s3
  14.                 - enp0s4
  15.             addresses:
  16.                 - 192.168.1.100/24
  17.             gateway4: 192.168.1.1
  18.             nameservers:
  19.                 addresses: [8.8.8.8, 8.8.4.4]
复制代码
  1. # 查看桥接状态
  2. brctl show
  3. # 查看桥接接口状态
  4. ip addr show br0
复制代码

高级路由配置

高级路由配置允许系统根据不同的条件(如源IP地址、目标IP地址、端口号等)选择不同的路由路径。
  1. # 编辑/etc/iproute2/rt_tables文件,添加自定义路由表
  2. echo "100 custom_table" | sudo tee -a /etc/iproute2/rt_tables
复制代码
  1. # 添加路由到自定义表
  2. sudo ip route add 192.168.2.0/24 dev enp0s4 table custom_table
  3. sudo ip route add default via 192.168.2.1 dev enp0s4 table custom_table
  4. # 添加路由规则
  5. sudo ip rule add from 192.168.1.100/32 table custom_table
  6. sudo ip rule add to 192.168.2.0/24 table custom_table
复制代码
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.             addresses:
  8.                 - 192.168.1.100/24
  9.             routes:
  10.                 - to: 192.168.2.0/24
  11.                   via: 192.168.1.1
  12.                   table: 100
  13.             routing-policy:
  14.                 - from: 192.168.1.100/32
  15.                   table: 100
  16.                 - to: 192.168.2.0/24
  17.                   table: 100
  18.         enp0s4:
  19.             dhcp4: no
  20.             addresses:
  21.                 - 192.168.2.100/24
  22.             gateway4: 192.168.2.1
  23.             nameservers:
  24.                 addresses: [8.8.8.8, 8.8.4.4]
复制代码
  1. # 查看路由表
  2. ip route show table custom_table
  3. # 查看路由规则
  4. ip rule show
  5. # 测试路由
  6. traceroute -s 192.168.1.100 192.168.2.1
复制代码

网络故障排除

常见网络问题及解决方案

问题:系统无法连接到网络,无法访问互联网或局域网资源。

解决方案:
  1. # 检查网络接口状态
  2. ip addr show
  3. # 启用网络接口
  4. sudo ip link set enp0s3 up
  5. # 检查网络连接
  6. ping 8.8.8.8
  7. # 检查DNS解析
  8. nslookup example.com
  9. # 检查路由表
  10. ip route show
  11. # 重启网络服务
  12. sudo systemctl restart systemd-networkd
  13. sudo systemctl restart NetworkManager
复制代码

问题:可以访问IP地址,但无法访问域名。

解决方案:
  1. # 检查DNS配置
  2. systemd-resolve --status
  3. # 编辑resolv.conf文件
  4. sudo nano /etc/resolv.conf
  5. # 添加DNS服务器
  6. nameserver 8.8.8.8
  7. nameserver 8.8.4.4
  8. # 保存文件后,测试DNS解析
  9. nslookup example.com
复制代码

问题:网络连接时断时续,性能不稳定。

解决方案:
  1. # 检查网络接口错误
  2. ip -s link show enp0s3
  3. # 检查网络连接质量
  4. ping -c 100 8.8.8.8
  5. # 检查网络带宽
  6. iperf3 -c server_ip
  7. # 检查网络连接数
  8. ss -s
  9. # 检查网络服务状态
  10. sudo systemctl status systemd-networkd
  11. sudo systemctl status NetworkManager
复制代码

问题:系统配置为使用DHCP,但无法获取IP地址。

解决方案:
  1. # 检查DHCP客户端状态
  2. sudo systemctl status systemd-networkd
  3. sudo systemctl status dhcpcd
  4. # 释放当前DHCP租约
  5. sudo dhclient -r enp0s3
  6. # 重新获取DHCP租约
  7. sudo dhclient enp0s3
  8. # 检查DHCP服务器响应
  9. sudo tcpdump -i enp0s3 -n port 67 or port 68
复制代码

网络诊断工具
  1. # 测试网络连通性
  2. ping 8.8.8.8
  3. # 指定发送包数量
  4. ping -c 4 8.8.8.8
  5. # 指定发送间隔
  6. ping -i 2 8.8.8.8
  7. # 持续ping并显示时间戳
  8. ping -D 8.8.8.8
复制代码
  1. # 安装traceroute
  2. sudo apt install traceroute
  3. # 跟踪到目标主机的路由
  4. traceroute example.com
  5. # 使用ICMP协议跟踪路由
  6. traceroute -I example.com
  7. # 使用TCP协议跟踪路由
  8. traceroute -T example.com
复制代码
  1. # 安装mtr
  2. sudo apt install mtr
  3. # 结合ping和traceroute的功能
  4. mtr example.com
  5. # 使用TCP模式
  6. mtr -T example.com
  7. # 指定报告模式
  8. mtr -r -c 10 example.com
复制代码
  1. # 安装netstat
  2. sudo apt install net-tools
  3. # 显示所有网络连接
  4. netstat -a
  5. # 显示TCP连接
  6. netstat -t
  7. # 显示UDP连接
  8. netstat -u
  9. # 显示监听端口
  10. netstat -l
  11. # 显示PID和程序名称
  12. netstat -p
  13. # 显示路由表
  14. netstat -r
复制代码
  1. # 显示所有TCP连接
  2. ss -t -a
  3. # 显示所有UDP连接
  4. ss -u -a
  5. # 显示监听端口
  6. ss -l
  7. # 显示进程信息
  8. ss -p
  9. # 显示统计信息
  10. ss -s
  11. # 显示套接字摘要
  12. ss -t -a -i
复制代码
  1. # 安装tcpdump
  2. sudo apt install tcpdump
  3. # 捕获所有网络接口的数据包
  4. sudo tcpdump -i any
  5. # 捕获特定接口的数据包
  6. sudo tcpdump -i enp0s3
  7. # 捕获特定主机的数据包
  8. sudo tcpdump host 192.168.1.1
  9. # 捕获特定端口的数据包
  10. sudo tcpdump port 80
  11. # 保存捕获的数据包到文件
  12. sudo tcpdump -w capture.pcap
  13. # 读取捕获的数据包文件
  14. tcpdump -r capture.pcap
复制代码
  1. # 安装wireshark
  2. sudo apt install wireshark
  3. # 将用户添加到wireshark组
  4. sudo usermod -aG wireshark $USER
  5. # 重新登录以使组更改生效
  6. # 在命令行运行wireshark
  7. wireshark
复制代码

日志分析
  1. # 查看系统日志
  2. sudo journalctl -u systemd-networkd
  3. sudo journalctl -u NetworkManager
  4. # 实时查看系统日志
  5. sudo journalctl -f -u systemd-networkd
  6. sudo journalctl -f -u NetworkManager
  7. # 查看特定时间段的日志
  8. sudo journalctl -u systemd-networkd --since "2023-01-01" --until "2023-01-02"
复制代码
  1. # 查看内核日志
  2. dmesg | grep -i eth
  3. # 实时查看内核日志
  4. dmesg -w
  5. # 查看网络相关的内核日志
  6. dmesg | grep -i network
复制代码
  1. # 查看DHCP客户端日志
  2. sudo journalctl -u dhcpcd
  3. # 查看DNS解析日志
  4. sudo journalctl -u systemd-resolved
  5. # 查看防火墙日志
  6. sudo journalctl -u ufw
复制代码

网络安全配置

防火墙配置(UFW)
  1. # 安装UFW
  2. sudo apt update
  3. sudo apt install ufw
复制代码
  1. # 启用UFW
  2. sudo ufw enable
  3. # 查看UFW状态
  4. sudo ufw status
  5. # 禁用UFW
  6. sudo ufw disable
  7. # 重置UFW规则
  8. sudo ufw reset
复制代码
  1. # 设置默认入站策略为拒绝
  2. sudo ufw default deny incoming
  3. # 设置默认出站策略为允许
  4. sudo ufw default allow outgoing
复制代码
  1. # 允许SSH连接
  2. sudo ufw allow ssh
  3. # 允许HTTP连接
  4. sudo ufw allow http
  5. # 允许HTTPS连接
  6. sudo ufw allow https
  7. # 允许特定端口
  8. sudo ufw allow 8080
  9. # 允许特定端口范围
  10. sudo ufw allow 6000:6007/tcp
  11. # 允许特定IP地址
  12. sudo ufw allow from 192.168.1.100
  13. # 允许特定IP地址访问特定端口
  14. sudo ufw allow from 192.168.1.100 to any port 22
复制代码
  1. # 按规则编号删除
  2. sudo ufw status numbered
  3. sudo ufw delete 1
  4. # 按规则内容删除
  5. sudo ufw delete allow ssh
复制代码
  1. # 允许特定网络接口
  2. sudo ufw allow in on eth0
  3. # 限制连接速率
  4. sudo ufw limit ssh
  5. # 拒绝特定IP地址
  6. sudo ufw deny from 192.168.1.200
  7. # 日志记录
  8. sudo ufw logging on
  9. sudo ufw logging low
  10. sudo ufw logging medium
  11. sudo ufw logging high
复制代码

网络安全最佳实践
  1. # 查看运行的服务
  2. sudo systemctl list-units --type=service --state=running
  3. # 停止并禁用不必要的服务
  4. sudo systemctl stop servicename
  5. sudo systemctl disable servicename
复制代码
  1. # 编辑SSH配置文件
  2. sudo nano /etc/ssh/sshd_config
  3. # 禁用root登录
  4. PermitRootLogin no
  5. # 更改SSH端口
  6. Port 2222
  7. # 禁用密码认证,使用密钥认证
  8. PasswordAuthentication no
  9. # 重启SSH服务
  10. sudo systemctl restart sshd
复制代码
  1. # 安装Fail2ban
  2. sudo apt install fail2ban
  3. # 复制配置文件
  4. sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  5. # 编辑配置文件
  6. sudo nano /etc/fail2ban/jail.local
  7. # 配置SSH保护
  8. [sshd]
  9. enabled = true
  10. port = 22
  11. filter = sshd
  12. logpath = /var/log/auth.log
  13. maxretry = 3
  14. bantime = 3600
  15. # 启动Fail2ban
  16. sudo systemctl start fail2ban
  17. sudo systemctl enable fail2ban
  18. # 查看状态
  19. sudo fail2ban-client status
  20. sudo fail2ban-client status sshd
复制代码
  1. # 编辑hosts.allow文件
  2. sudo nano /etc/hosts.allow
  3. # 允许特定IP访问SSH服务
  4. sshd: 192.168.1.0/24
  5. # 编辑hosts.deny文件
  6. sudo nano /etc/hosts.deny
  7. # 拒绝所有IP访问SSH服务
  8. sshd: ALL
复制代码
  1. # 安装iptables-persistent
  2. sudo apt install iptables-persistent
  3. # 查看当前规则
  4. sudo iptables -L
  5. # 允许本地回环
  6. sudo iptables -A INPUT -i lo -j ACCEPT
  7. # 允许已建立的连接
  8. sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  9. # 允许SSH
  10. sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  11. # 允许HTTP和HTTPS
  12. sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  13. sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  14. # 拒绝所有其他入站连接
  15. sudo iptables -A INPUT -j DROP
  16. # 保存规则
  17. sudo netfilter-persistent save
  18. # 恢复规则
  19. sudo netfilter-persistent reload
复制代码

网络性能优化

网络性能监控
  1. # 安装iftop
  2. sudo apt install iftop
  3. # 监控特定接口
  4. sudo iftop -i enp0s3
  5. # 显示端口信息
  6. sudo iftop -P
  7. # 显示特定主机
  8. sudo iftop -f "host 192.168.1.100"
复制代码
  1. # 安装nload
  2. sudo apt install nload
  3. # 监控特定接口
  4. nload enp0s3
  5. # 更新间隔(单位:毫秒)
  6. nload -t 500
复制代码
  1. # 安装bmon
  2. sudo apt install bmon
  3. # 启动bmon
  4. bmon
  5. # 监控特定接口
  6. bmon -p enp0s3
复制代码
  1. # 安装nethogs
  2. sudo apt install nethogs
  3. # 监控特定接口
  4. sudo nethogs enp0s3
  5. # 刷新间隔(单位:秒)
  6. sudo nethogs -t 3
复制代码

优化网络设置
  1. # 编辑sysctl.conf文件
  2. sudo nano /etc/sysctl.conf
  3. # 添加以下参数
  4. # 增加TCP最大缓冲区大小
  5. net.core.rmem_max = 16777216
  6. net.core.wmem_max = 16777216
  7. # 增加TCP默认缓冲区大小
  8. net.ipv4.tcp_rmem = 4096 87380 16777216
  9. net.ipv4.tcp_wmem = 4096 65536 16777216
  10. # 启用TCP窗口缩放
  11. net.ipv4.tcp_window_scaling = 1
  12. # 启用TCP选择性确认
  13. net.ipv4.tcp_sack = 1
  14. # 启用TCP时间戳
  15. net.ipv4.tcp_timestamps = 1
  16. # 增加TCP最大连接数
  17. net.core.somaxconn = 65535
  18. # 应用更改
  19. sudo sysctl -p
复制代码
  1. # 查看当前网络接口设置
  2. ethtool enp0s3
  3. # 启用GRO(Generic Receive Offload)
  4. sudo ethtool -K enp0s3 gro on
  5. # 启用TSO(TCP Segmentation Offload)
  6. sudo ethtool -K enp0s3 tso on
  7. # 启用LRO(Large Receive Offload)
  8. sudo ethtool -K enp0s3 lro on
  9. # 永久保存设置
  10. sudo nano /etc/network/interfaces
  11. # 添加以下内容
  12. auto enp0s3
  13. iface enp0s3 inet dhcp
  14.     post-up ethtool -K enp0s3 gro on tso on lro on
复制代码
  1. # 检查当前拥塞控制算法
  2. sysctl net.ipv4.tcp_congestion_control
  3. # 启用BBR拥塞控制算法
  4. echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
  5. echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
  6. # 应用更改
  7. sudo sysctl -p
  8. # 验证BBR是否启用
  9. sysctl net.ipv4.tcp_congestion_control
复制代码
  1. # 安装dnsmasq
  2. sudo apt install dnsmasq
  3. # 备份原始配置文件
  4. sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
  5. # 创建新的配置文件
  6. sudo nano /etc/dnsmasq.conf
  7. # 添加以下内容
  8. listen-address=127.0.0.1
  9. cache-size=1000
  10. no-negcache
  11. # 重启dnsmasq服务
  12. sudo systemctl restart dnsmasq
  13. sudo systemctl enable dnsmasq
  14. # 配置系统使用本地DNS服务器
  15. sudo nano /etc/resolv.conf
  16. # 添加以下内容
  17. nameserver 127.0.0.1
复制代码

服务器网络配置

静态IP配置

对于服务器环境,通常需要配置静态IP地址以确保网络连接的稳定性。
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.             addresses:
  8.                 - 192.168.1.100/24
  9.             gateway4: 192.168.1.1
  10.             nameservers:
  11.                 addresses: [8.8.8.8, 8.8.4.4]
  12.             optional: true
复制代码
  1. # 应用Netplan配置
  2. sudo netplan apply
  3. # 验证配置
  4. ip addr show enp0s3
复制代码
  1. network:
  2.     version: 2
  3.     renderer: networkd
  4.     ethernets:
  5.         enp0s3:
  6.             dhcp4: no
  7.             addresses:
  8.                 - 192.168.1.100/24
  9.             gateway4: 192.168.1.1
  10.             nameservers:
  11.                 addresses: [8.8.8.8, 8.8.4.4]
  12.         enp0s4:
  13.             dhcp4: no
  14.             addresses:
  15.                 - 10.0.0.100/24
  16.             routes:
  17.                 - to: 10.0.1.0/24
  18.                   via: 10.0.0.1
复制代码

网络服务配置
  1. # 安装ISC DHCP服务器
  2. sudo apt install isc-dhcp-server
  3. # 配置DHCP服务器
  4. sudo nano /etc/default/isc-dhcp-server
  5. # 指定网络接口
  6. INTERFACESv4="enp0s3"
  7. # 备份原始配置文件
  8. sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
  9. # 创建新的配置文件
  10. sudo nano /etc/dhcp/dhcpd.conf
  11. # 添加以下内容
  12. default-lease-time 600;
  13. max-lease-time 7200;
  14. subnet 192.168.1.0 netmask 255.255.255.0 {
  15.     range 192.168.1.150 192.168.1.200;
  16.     option routers 192.168.1.1;
  17.     option domain-name-servers 8.8.8.8, 8.8.4.4;
  18.     option domain-name "example.com";
  19. }
  20. # 重启DHCP服务
  21. sudo systemctl restart isc-dhcp-server
  22. sudo systemctl enable isc-dhcp-server
  23. # 检查服务状态
  24. sudo systemctl status isc-dhcp-server
复制代码
  1. # 安装BIND9
  2. sudo apt install bind9
  3. # 配置BIND9
  4. sudo nano /etc/bind/named.conf.options
  5. # 添加以下内容
  6. options {
  7.     directory "/var/cache/bind";
  8.     recursion yes;
  9.     allow-recursion { trusted; };
  10.     listen-on { 192.168.1.100; };
  11.     allow-transfer { none; };
  12.     forwarders {
  13.         8.8.8.8;
  14.         8.8.4.4;
  15.     };
  16. };
  17. # 定义ACL
  18. acl "trusted" {
  19.     192.168.1.0/24;
  20.     localhost;
  21.     localnets;
  22. };
  23. # 创建正向区域文件
  24. sudo nano /etc/bind/zones/db.example.com
  25. # 添加以下内容
  26. $TTL    604800
  27. @       IN      SOA     ns1.example.com. admin.example.com. (
  28.                               2         ; Serial
  29.                          604800         ; Refresh
  30.                           86400         ; Retry
  31.                         2419200         ; Expire
  32.                          604800 )       ; Negative Cache TTL
  33. ;
  34. @       IN      NS      ns1.example.com.
  35. @       IN      A       192.168.1.100
  36. @       IN      AAAA    ::1
  37. ns1     IN      A       192.168.1.100
  38. www     IN      A       192.168.1.100
  39. mail    IN      A       192.168.1.100
  40. # 创建反向区域文件
  41. sudo nano /etc/bind/zones/db.192.168.1
  42. # 添加以下内容
  43. $TTL    604800
  44. @       IN      SOA     ns1.example.com. admin.example.com. (
  45.                               1         ; Serial
  46.                          604800         ; Refresh
  47.                           86400         ; Retry
  48.                         2419200         ; Expire
  49.                          604800 )       ; Negative Cache TTL
  50. ;
  51. @       IN      NS      ns1.example.com.
  52. 100     IN      PTR     ns1.example.com.
  53. 100     IN      PTR     www.example.com.
  54. 100     IN      PTR     mail.example.com.
  55. # 配置本地BIND解析
  56. sudo nano /etc/bind/named.conf.local
  57. # 添加以下内容
  58. include "/etc/bind/zones.rfc1918";
  59. zone "example.com" {
  60.     type master;
  61.     file "/etc/bind/zones/db.example.com";
  62. };
  63. zone "1.168.192.in-addr.arpa" {
  64.     type master;
  65.     file "/etc/bind/zones/db.192.168.1";
  66. };
  67. # 重启BIND服务
  68. sudo systemctl restart bind9
  69. sudo systemctl enable bind9
  70. # 检查服务状态
  71. sudo systemctl status bind9
  72. # 测试DNS解析
  73. nslookup example.com 192.168.1.100
  74. nslookup 192.168.1.100 192.168.1.100
复制代码
  1. # 安装Apache Web服务器
  2. sudo apt install apache2
  3. # 启用Apache服务
  4. sudo systemctl start apache2
  5. sudo systemctl enable apache2
  6. # 检查服务状态
  7. sudo systemctl status apache2
  8. # 配置虚拟主机
  9. sudo nano /etc/apache2/sites-available/example.com.conf
  10. # 添加以下内容
  11. <VirtualHost *:80>
  12.     ServerAdmin admin@example.com
  13.     ServerName example.com
  14.     ServerAlias www.example.com
  15.     DocumentRoot /var/www/example.com/public_html
  16.     ErrorLog ${APACHE_LOG_DIR}/error.log
  17.     CustomLog ${APACHE_LOG_DIR}/access.log combined
  18. </VirtualHost>
  19. # 创建网站目录
  20. sudo mkdir -p /var/www/example.com/public_html
  21. sudo chown -R $USER:$USER /var/www/example.com/public_html
  22. sudo chmod -R 755 /var/www/example.com
  23. # 创建测试页面
  24. echo "<html><body><h1>Hello World!</h1></body></html>" | sudo tee /var/www/example.com/public_html/index.html
  25. # 启用虚拟主机
  26. sudo a2ensite example.com.conf
  27. sudo a2dissite 000-default.conf
  28. # 测试Apache配置
  29. sudo apache2ctl configtest
  30. # 重启Apache服务
  31. sudo systemctl restart apache2
复制代码
  1. # 安装vsftpd
  2. sudo apt install vsftpd
  3. # 备份原始配置文件
  4. sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
  5. # 编辑配置文件
  6. sudo nano /etc/vsftpd.conf
  7. # 修改以下配置
  8. listen=NO
  9. listen_ipv6=YES
  10. anonymous_enable=NO
  11. local_enable=YES
  12. write_enable=YES
  13. local_umask=022
  14. dirmessage_enable=YES
  15. use_localtime=YES
  16. xferlog_enable=YES
  17. connect_from_port_20=YES
  18. chroot_local_user=YES
  19. secure_chroot_dir=/var/run/vsftpd/empty
  20. pam_service_name=vsftpd
  21. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
  22. rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.pem
  23. ssl_enable=NO
  24. pasv_enable=Yes
  25. pasv_min_port=10000
  26. pasv_max_port=11000
  27. # 重启vsftpd服务
  28. sudo systemctl restart vsftpd
  29. sudo systemctl enable vsftpd
  30. # 检查服务状态
  31. sudo systemctl status vsftpd
  32. # 创建FTP用户
  33. sudo adduser ftpuser
  34. sudo passwd ftpuser
  35. # 配置防火墙
  36. sudo ufw allow 20/tcp
  37. sudo ufw allow 21/tcp
  38. sudo ufw allow 10000:11000/tcp
复制代码

总结

Ubuntu 20.04网络配置是一个广泛而复杂的主题,涵盖了从基础设置到高级网络管理的各个方面。本文详细介绍了Ubuntu 20.04的网络配置方法,包括使用图形界面和命令行工具进行基础网络配置,使用Netplan进行高级网络管理,如网络绑定、VLAN配置和网络桥接等。此外,我们还讨论了网络故障排除的方法和工具,网络安全配置的最佳实践,以及如何优化网络性能和提高系统稳定性。

对于新手用户,建议从基础网络配置开始,逐步掌握网络概念和基本配置方法。对于系统管理员,可以深入研究高级网络管理和性能优化,以确保服务器环境的稳定性和安全性。

随着技术的不断发展,网络配置工具和方法也在不断变化。因此,持续学习和实践是掌握Ubuntu 20.04网络配置的关键。希望本文能够为读者提供有价值的参考,帮助您更好地配置和管理Ubuntu 20.04的网络环境。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

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

本版积分规则

关闭

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

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

Powered by Pixtech

© 2025-2026 Pixtech Team.

>