活动公告

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

Ubuntu Linux网络设置完全指南 从基础配置到高级网络管理轻松解决连接问题提升系统网络性能

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

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

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

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

x
引言

在当今数字时代,网络连接已成为计算机系统的核心功能之一。无论是个人使用还是企业部署,稳定、高效的网络连接都是确保系统正常运行的关键。Ubuntu作为最受欢迎的Linux发行版之一,提供了强大而灵活的网络配置选项,从简单的桌面连接到复杂的服务器网络管理。

本指南将全面介绍Ubuntu Linux网络设置的各个方面,从基础配置到高级网络管理,帮助您轻松解决连接问题并提升系统网络性能。无论您是Linux新手还是有经验的系统管理员,都能从本指南中找到有价值的信息。

Ubuntu网络基础

网络接口概念

在Ubuntu系统中,网络接口是计算机与网络通信的通道。每个网络接口都有一个唯一的名称,如eth0、wlan0、enp3s0等。这些接口可以是物理的(如以太网卡、无线网卡)或虚拟的(如回环接口、VPN接口)。

Ubuntu 18.04及以后版本使用了可预测的网络接口命名规则,这使得接口名称更加稳定和可预测。例如:

• eno1:代表主板上的嵌入式网卡
• enp2s0:代表PCI总线上的网卡
• wlp3s0:代表无线网卡

您可以使用以下命令查看系统中的网络接口:
  1. ip addr show
复制代码


  1. ifconfig -a
复制代码

IP地址、子网掩码、网关和DNS

理解这些基本网络概念对于正确配置网络至关重要:

• IP地址:网络中设备的唯一标识符,如192.168.1.100。IPv4地址由32位二进制数组成,通常表示为4个十进制数(0-255)。
• 子网掩码:用于确定IP地址的网络部分和主机部分,如255.255.255.0。也可以用CIDR表示法表示,如/24。
• 网关:连接不同网络的设备,通常是路由器,负责将数据包转发到其他网络。
• DNS(Domain Name System):将域名转换为IP地址的系统,如将www.example.com转换为93.184.216.34。

网络配置文件位置

在Ubuntu系统中,网络配置文件的位置取决于使用的网络管理工具:

• Netplan(Ubuntu 18.04及以后版本默认):配置文件位于/etc/netplan/目录下,通常以.yaml结尾。
• NetworkManager:主要用于桌面环境,配置文件位于/etc/NetworkManager/目录下。
• 传统网络配置(旧版Ubuntu):配置文件位于/etc/network/interfaces。

此外,DNS配置可以在/etc/resolv.conf文件中找到,但请注意,该文件可能由网络管理服务动态生成。

基础网络配置

桌面环境下的网络配置(GUI)

Ubuntu桌面环境提供了直观的图形界面来配置网络设置:

1. 点击系统菜单中的网络图标(通常在屏幕右上角)。
2. 选择”有线连接”或”Wi-Fi”选项,然后点击”设置”。
3. 在打开的网络设置窗口中,您可以:配置有线连接(IPv4和IPv6)管理Wi-Fi连接设置VPN配置代理管理网络接口
4. 配置有线连接(IPv4和IPv6)
5. 管理Wi-Fi连接
6. 设置VPN
7. 配置代理
8. 管理网络接口

• 配置有线连接(IPv4和IPv6)
• 管理Wi-Fi连接
• 设置VPN
• 配置代理
• 管理网络接口

对于IPv4配置,您可以选择:

• 自动(DHCP):从路由器自动获取IP地址
• 手动:手动指定IP地址、子网掩码、网关和DNS
• 仅本地链接:仅用于本地网络通信
• 禁用:禁用IPv4

命令行下的网络配置(CLI)

对于服务器环境或喜欢使用命令行的用户,Ubuntu提供了多种命令行工具来配置网络:

ip命令是现代Linux系统中管理网络的主要工具:
  1. # 显示网络接口信息
  2. ip addr show
  3. # 为接口分配IP地址
  4. sudo ip addr add 192.168.1.100/24 dev eth0
  5. # 启用网络接口
  6. sudo ip link set eth0 up
  7. # 添加默认路由
  8. sudo ip route add default via 192.168.1.1
  9. # 显示路由表
  10. ip route show
复制代码

虽然ifconfig已被ip命令取代,但许多用户仍然熟悉它:
  1. # 显示网络接口信息
  2. ifconfig
  3. # 为接口分配IP地址
  4. sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
  5. # 启用网络接口
  6. sudo ifconfig eth0 up
  7. # 添加默认路由
  8. sudo route add default gw 192.168.1.1
复制代码

静态IP与动态IP配置

静态IP地址适用于服务器或需要固定网络位置的设备。在Ubuntu 18.04及以后版本中,可以使用Netplan配置静态IP:

1. 编辑Netplan配置文件(文件名可能因系统而异):
  1. sudo nano /etc/netplan/01-netcfg.yaml
复制代码

1. 添加以下内容(根据您的网络环境调整):
  1. network:
  2.   version: 2
  3.   renderer: networkd
  4.   ethernets:
  5.     eth0:
  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]
复制代码

1. 应用配置:
  1. sudo netplan apply
复制代码

动态IP配置适用于大多数桌面环境,它允许系统从DHCP服务器自动获取网络配置:

使用Netplan配置DHCP:
  1. network:
  2.   version: 2
  3.   renderer: networkd
  4.   ethernets:
  5.     eth0:
  6.       dhcp4: yes
复制代码

应用配置:
  1. sudo netplan apply
复制代码

网络管理工具

Netplan是Ubuntu 18.04及以后版本引入的网络配置工具,它使用YAML格式的配置文件,并可以生成NetworkManager或systemd-networkd的配置。

Netplan的主要优点:

• 声明式配置:您描述想要的网络状态,而不是如何实现它
• 统一配置:支持后端NetworkManager和systemd-networkd
• 易于使用:YAML格式简洁明了

Netplan配置示例:
  1. network:
  2.   version: 2
  3.   renderer: networkd
  4.   ethernets:
  5.     eth0:
  6.       dhcp4: yes
  7.     eth1:
  8.       dhcp4: no
  9.       addresses: [192.168.2.100/24]
  10.       gateway4: 192.168.2.1
  11.       nameservers:
  12.         addresses: [8.8.8.8, 8.8.4.4]
复制代码

应用Netplan配置:
  1. sudo netplan apply
复制代码

测试Netplan配置:
  1. sudo netplan try
复制代码

NetworkManager主要用于桌面环境,提供了动态网络控制和配置。它可以通过命令行工具nmcli和图形界面进行管理。

使用nmcli配置网络:
  1. # 显示网络连接
  2. nmcli connection show
  3. # 创建新的有线连接
  4. sudo nmcli connection add type ethernet ifname eth0 con-name my-connection
  5. # 配置静态IP
  6. sudo nmcli connection modify my-connection ipv4.addresses 192.168.1.100/24
  7. sudo nmcli connection modify my-connection ipv4.gateway 192.168.1.1
  8. sudo nmcli connection modify my-connection ipv4.dns "8.8.8.8 8.8.4.4"
  9. sudo nmcli connection modify my-connection ipv4.method manual
  10. # 启用连接
  11. sudo nmcli connection up my-connection
复制代码

systemd-networkd是systemd套件的一部分,是一个低级网络配置服务,适用于服务器环境。

配置systemd-networkd:

1. 创建网络配置文件:
  1. sudo nano /etc/systemd/network/10-static.network
复制代码

1. 添加以下内容:
  1. [Match]
  2. Name=eth0
  3. [Network]
  4. Address=192.168.1.100/24
  5. Gateway=192.168.1.1
  6. DNS=8.8.8.8 8.8.4.4
复制代码

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

高级网络配置

网络绑定(Bonding)

网络绑定(也称为链路聚合)是将多个网络接口组合成一个逻辑接口的技术,以提高带宽和提供冗余。

使用Netplan配置网络绑定:
  1. network:
  2.   version: 2
  3.   renderer: networkd
  4.   ethernets:
  5.     eth0:
  6.       dhcp4: no
  7.     eth1:
  8.       dhcp4: no
  9.   bonds:
  10.     bond0:
  11.       dhcp4: no
  12.       interfaces: [eth0, eth1]
  13.       addresses: [192.168.1.100/24]
  14.       gateway4: 192.168.1.1
  15.       nameservers:
  16.         addresses: [8.8.8.8, 8.8.4.4]
  17.       parameters:
  18.         mode: balance-rr
复制代码

应用配置:
  1. sudo netplan apply
复制代码

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

1. balance-rr (mode 0):轮询模式,数据包按顺序依次从每个接口发送。
2. active-backup (mode 1):主备模式,只有一个接口处于活动状态,当活动接口故障时,备用接口接管。
3. balance-xor (mode 2):XOR模式,根据源和目标MAC地址的XOR选择接口。
4. broadcast (mode 3):广播模式,所有数据包从所有接口发送。
5. 802.3ad (mode 4):动态链路聚合,创建具有相同速度和双工设置的聚合组。
6. balance-tlb (mode 5):自适应传输负载均衡,出站流量根据当前负载分配。
7. balance-alb (mode 6):自适应负载均衡,包括TLB和接收负载均衡(IPv4)。

验证绑定状态:
  1. cat /proc/net/bonding/bond0
复制代码

网络桥接(Bridging)

网络桥接是将多个网络接口连接在一起,使它们像一个网络一样工作的技术。常用于虚拟化环境,允许虚拟机直接连接到物理网络。

使用Netplan配置网络桥接:
  1. network:
  2.   version: 2
  3.   renderer: networkd
  4.   ethernets:
  5.     eth0:
  6.       dhcp4: no
  7.   bridges:
  8.     br0:
  9.       dhcp4: no
  10.       addresses: [192.168.1.100/24]
  11.       gateway4: 192.168.1.1
  12.       nameservers:
  13.         addresses: [8.8.8.8, 8.8.4.4]
  14.       interfaces: [eth0]
复制代码

应用配置:
  1. sudo netplan apply
复制代码

传统的网桥管理工具brctl仍然可用:
  1. # 安装bridge-utils
  2. sudo apt install bridge-utils
  3. # 创建网桥
  4. sudo brctl addbr br0
  5. # 将接口添加到网桥
  6. sudo brctl addif br0 eth0
  7. # 显示网桥信息
  8. brctl show
复制代码

VLAN配置

虚拟局域网(VLAN)允许将物理网络划分为多个逻辑网络,提高网络安全性和性能。

使用Netplan配置VLAN:
  1. network:
  2.   version: 2
  3.   renderer: networkd
  4.   ethernets:
  5.     eth0:
  6.       dhcp4: no
  7.   vlans:
  8.     vlan100:
  9.       id: 100
  10.       link: eth0
  11.       addresses: [192.168.100.100/24]
  12.       gateway4: 192.168.100.1
  13.       nameservers:
  14.         addresses: [8.8.8.8, 8.8.4.4]
复制代码

应用配置:
  1. sudo netplan apply
复制代码

传统的VLAN配置工具vconfig:
  1. # 安装vlan包
  2. sudo apt install vlan
  3. # 加载8021q模块
  4. sudo modprobe 8021q
  5. # 创建VLAN接口
  6. sudo vconfig add eth0 100
  7. # 为VLAN接口配置IP地址
  8. sudo ip addr add 192.168.100.100/24 dev eth0.100
  9. sudo ip link set eth0.100 up
复制代码

网络命名空间

网络命名空间是Linux内核的一个功能,允许创建独立的网络协议栈实例,每个实例有自己的接口、路由表和防火墙规则。这对于网络隔离、测试和容器化技术非常有用。
  1. # 创建网络命名空间
  2. sudo ip netns add myns
  3. # 列出所有网络命名空间
  4. sudo ip netns list
  5. # 在命名空间中执行命令
  6. sudo ip netns exec myns ip addr show
  7. # 在命名空间中启动shell
  8. sudo ip netns exec myns bash
  9. # 删除网络命名空间
  10. sudo ip netns del myns
复制代码

创建一对veth接口,将一个放在默认命名空间,另一个放在新命名空间:
  1. # 创建veth对
  2. sudo ip link add veth0 type veth peer name veth1
  3. # 将veth1移动到myns命名空间
  4. sudo ip link set veth1 netns myns
  5. # 配置默认命名空间中的veth0
  6. sudo ip addr add 10.0.0.1/24 dev veth0
  7. sudo ip link set veth0 up
  8. # 配置myns命名空间中的veth1
  9. sudo ip netns exec myns ip addr add 10.0.0.2/24 dev veth1
  10. sudo ip netns exec myns ip link set veth1 up
  11. sudo ip netns exec myns ip link set lo up
  12. # 测试连接
  13. ping 10.0.0.2
  14. sudo ip netns exec myns ping 10.0.0.1
复制代码

网络故障排除

常见网络问题及解决方案

症状:无法访问互联网或局域网资源。

可能原因及解决方案:

1. 网络接口未启用“`bash检查接口状态ip link show

网络接口未启用“`bash

ip link show

# 启用接口
   sudo ip link set eth0 up
  1. 2. **IP地址配置错误**
  2.    ```bash
  3.    # 检查IP配置
  4.    ip addr show
  5.    
  6.    # 重新配置IP地址
  7.    sudo ip addr add 192.168.1.100/24 dev eth0
复制代码

1. 网关配置错误“`bash检查路由表ip route show

网关配置错误“`bash

ip route show

# 添加默认网关
   sudo ip route add default via 192.168.1.1
  1. 4. **DNS配置错误**
  2.    ```bash
  3.    # 检查DNS配置
  4.    cat /etc/resolv.conf
  5.    
  6.    # 添加DNS服务器
  7.    echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
复制代码

症状:网络连接成功但速度很慢。

可能原因及解决方案:

1. 网络拥塞“`bash检查网络负载sar -n DEV 1 5

网络拥塞“`bash

sar -n DEV 1 5

# 使用iftop监控网络流量
   sudo apt install iftop
   sudo iftop -i eth0
  1. 2. **MTU设置不当**
  2.    ```bash
  3.    # 检查当前MTU设置
  4.    ip link show eth0
  5.    
  6.    # 临时更改MTU
  7.    sudo ip link set eth0 mtu 1492
  8.    
  9.    # 永久更改MTU(使用Netplan)
  10.    # 编辑Netplan配置文件,添加mtu参数
  11.    network:
  12.      version: 2
  13.      renderer: networkd
  14.      ethernets:
  15.        eth0:
  16.          dhcp4: yes
  17.          mtu: 1492
复制代码

1. TCP参数调优“`bash查看当前TCP参数sysctl net.ipv4.tcp_congestion_control
sysctl net.core.rmem_max
sysctl net.core.wmem_max

TCP参数调优“`bash

sysctl net.ipv4.tcp_congestion_control
sysctl net.core.rmem_max
sysctl net.core.wmem_max

# 临时调整TCP参数
   sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
   sudo sysctl -w net.core.rmem_max=16777216
   sudo sysctl -w net.core.wmem_max=16777216

# 永久调整TCP参数
   echo “net.ipv4.tcp_congestion_control=bbr” | sudo tee -a /etc/sysctl.conf
   echo “net.core.rmem_max=16777216” | sudo tee -a /etc/sysctl.conf
   echo “net.core.wmem_max=16777216” | sudo tee -a /etc/sysctl.conf
   sudo sysctl -p
  1. #### 无线网络连接问题
  2. **症状**:无法连接到Wi-Fi网络或连接频繁断开。
  3. **可能原因及解决方案**:
  4. 1. **无线网卡驱动问题**
  5.    ```bash
  6.    # 检查无线网卡状态
  7.    lspci | grep Network
  8.    lsusb | grep Wireless
  9.    
  10.    # 安装必要的驱动
  11.    sudo apt install linux-firmware
复制代码

1. 网络管理器服务问题# 重启网络管理器服务
sudo systemctl restart NetworkManager
2. 无线电源管理问题“`bash检查无线电源管理状态iwconfig

网络管理器服务问题
  1. # 重启网络管理器服务
  2. sudo systemctl restart NetworkManager
复制代码

无线电源管理问题“`bash

iwconfig

# 禁用无线电源管理
   sudo iwconfig wlan0 power off
  1. ### 网络诊断工具
  2. #### ping
  3. `ping`是最基本的网络诊断工具,用于测试主机之间的连通性:
  4. ```bash
  5. # 基本ping测试
  6. ping google.com
  7. # 指定ping次数
  8. ping -c 4 google.com
  9. # 指定数据包大小
  10. ping -s 1472 google.com
  11. # 持续ping并显示时间戳
  12. ping -D google.com
复制代码

traceroute显示数据包从源到目标所经过的路由:
  1. # 基本路由跟踪
  2. traceroute google.com
  3. # 使用ICMP协议(而不是UDP)
  4. traceroute -I google.com
  5. # 不解析主机名
  6. traceroute -n google.com
复制代码

mtr结合了ping和traceroute的功能,提供实时的网络诊断:
  1. # 安装mtr
  2. sudo apt install mtr
  3. # 运行mtr
  4. mtr google.com
  5. # 使用ICMP协议
  6. mtr -t google.com
复制代码

netstat显示网络连接、路由表、接口统计等网络相关信息:
  1. # 显示所有网络连接
  2. netstat -a
  3. # 显示TCP连接
  4. netstat -t
  5. # 显示监听端口
  6. netstat -l
  7. # 显示PID和程序名称
  8. netstat -p
  9. # 显示数字地址(不解析主机名)
  10. netstat -n
  11. # 显示路由表
  12. netstat -r
复制代码

ss是netstat的现代替代品,提供更详细的信息:
  1. # 显示所有TCP连接
  2. ss -t -a
  3. # 显示所有UDP连接
  4. ss -u -a
  5. # 显示监听套接字
  6. ss -l
  7. # 显示进程信息
  8. ss -p
  9. # 显示数字地址
  10. ss -n
  11. # 显示统计信息
  12. ss -s
复制代码

tcpdump是一个强大的网络包分析工具,用于捕获和分析网络流量:
  1. # 安装tcpdump
  2. sudo apt install tcpdump
  3. # 捕获指定接口的所有流量
  4. sudo tcpdump -i eth0
  5. # 捕获指定数量的数据包
  6. sudo tcpdump -i eth0 -c 10
  7. # 捕获指定主机的流量
  8. sudo tcpdump -i eth0 host google.com
  9. # 捕获指定端口的流量
  10. sudo tcpdump -i eth0 port 80
  11. # 保存捕获的数据包到文件
  12. sudo tcpdump -i eth0 -w capture.pcap
  13. # 读取保存的数据包文件
  14. tcpdump -r capture.pcap
复制代码

日志分析与问题定位

Ubuntu系统中的网络相关日志可以帮助诊断问题:

1. 系统日志# 查看系统日志
sudo journalctl -u systemd-networkd
sudo journalctl -u NetworkManager
2. 内核日志# 查看内核日志中的网络相关信息
dmesg | grep -i eth
dmesg | grep -i network
3. Netplan日志# 查看Netplan日志
sudo journalctl -u systemd-networkd | grep netplan
4. DHCP客户端日志# 查看DHCP客户端日志
sudo journalctl -u systemd-networkd | grep dhcp

系统日志
  1. # 查看系统日志
  2. sudo journalctl -u systemd-networkd
  3. sudo journalctl -u NetworkManager
复制代码

内核日志
  1. # 查看内核日志中的网络相关信息
  2. dmesg | grep -i eth
  3. dmesg | grep -i network
复制代码

Netplan日志
  1. # 查看Netplan日志
  2. sudo journalctl -u systemd-networkd | grep netplan
复制代码

DHCP客户端日志
  1. # 查看DHCP客户端日志
  2. sudo journalctl -u systemd-networkd | grep dhcp
复制代码

网络性能优化

TCP/IP参数调优

通过调整TCP/IP参数,可以显著提高网络性能:
  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 BBR拥塞控制算法
  11. net.ipv4.tcp_congestion_control = bbr
  12. # 启用TCP窗口缩放
  13. net.ipv4.tcp_window_scaling = 1
  14. # 启用TCP选择性确认
  15. net.ipv4.tcp_sack = 1
  16. # 增加TCP最大连接数
  17. net.core.somaxconn = 65535
  18. # 增加TCP时间等待套接字池大小
  19. net.ipv4.tcp_max_tw_buckets = 1440000
  20. # 启用TCP快速打开
  21. net.ipv4.tcp_fastopen = 3
  22. # 减少TCP keepalive时间
  23. net.ipv4.tcp_keepalive_time = 600
  24. net.ipv4.tcp_keepalive_intvl = 60
  25. net.ipv4.tcp_keepalive_probes = 3
  26. # 应用更改
  27. sudo sysctl -p
复制代码

网络缓冲区优化

优化网络缓冲区可以提高数据传输效率:
  1. # 查看当前网络缓冲区设置
  2. cat /proc/sys/net/core/rmem_max
  3. cat /proc/sys/net/core/wmem_max
  4. # 临时增加网络缓冲区大小
  5. sudo sysctl -w net.core.rmem_max=16777216
  6. sudo sysctl -w net.core.wmem_max=16777216
  7. # 永久增加网络缓冲区大小
  8. echo "net.core.rmem_max=16777216" | sudo tee -a /etc/sysctl.conf
  9. echo "net.core.wmem_max=16777216" | sudo tee -a /etc/sysctl.conf
  10. sudo sysctl -p
复制代码

网络服务质量(QoS)配置

使用tc(Traffic Control)工具配置QoS,可以优化网络流量和带宽分配:
  1. # 安装tc工具(通常包含在iproute2包中)
  2. sudo apt install iproute2
  3. # 查看当前队列规则
  4. tc qdisc show
  5. # 创建分层令牌桶(HTB)队列规则
  6. sudo tc qdisc add dev eth0 root handle 1: htb default 30
  7. # 创建根类
  8. sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit
  9. # 创建子类(例如,为不同类型的流量分配不同的带宽)
  10. sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 500mbit ceil 800mbit
  11. sudo tc class add dev eth0 parent 1:1 classid 1:20 htb rate 300mbit ceil 600mbit
  12. sudo tc class add dev eth0 parent 1:1 classid 1:30 htb rate 200mbit ceil 400mbit
  13. # 创建过滤器,将流量分配到不同的类
  14. sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
  15. sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:20
  16. # 显示队列规则
  17. sudo tc class show dev eth0
  18. sudo tc filter show dev eth0
  19. # 删除队列规则
  20. sudo tc qdisc del dev eth0 root
复制代码

网络安全设置

UFW(Uncomplicated Firewall)是Ubuntu上的默认防火墙工具,简化了iptables的配置:
  1. # 安装UFW
  2. sudo apt install ufw
  3. # 启用UFW
  4. sudo ufw enable
  5. # 查看UFW状态
  6. sudo ufw status
  7. # 允许特定端口
  8. sudo ufw allow 22/tcp
  9. sudo ufw allow 80/tcp
  10. sudo ufw allow 443/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 proto tcp
  15. # 拒绝特定端口
  16. sudo ufw deny 23/tcp
  17. # 删除规则
  18. sudo ufw delete allow 22/tcp
  19. # 重置UFW
  20. sudo ufw reset
复制代码

对于需要更精细控制的场景,可以直接使用iptables:
  1. # 查看当前iptables规则
  2. sudo iptables -L -v -n
  3. # 允许本地回环
  4. sudo iptables -A INPUT -i lo -j ACCEPT
  5. # 允许已建立的连接
  6. sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  7. # 允许特定端口
  8. sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  9. sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  10. sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  11. # 允许ICMP(ping)
  12. sudo iptables -A INPUT -p icmp -j ACCEPT
  13. # 拒绝所有其他入站流量
  14. sudo iptables -A INPUT -j DROP
  15. # 保存iptables规则
  16. sudo apt install iptables-persistent
  17. sudo netfilter-persistent save
复制代码

特殊网络环境配置

无线网络配置
  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"
复制代码

应用配置:
  1. sudo netplan apply
复制代码
  1. # 扫描可用的无线网络
  2. nmcli dev wifi list
  3. # 连接到无线网络
  4. nmcli dev wifi connect "SSID" password "password"
  5. # 显示无线连接状态
  6. nmcli connection show
  7. # 断开无线连接
  8. nmcli dev disconnect wlp3s0
复制代码

VPN配置

1. 安装必要的软件包:
  1. sudo apt install network-manager-openvpn network-manager-openvpn-gnome
复制代码

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

1. 导入OpenVPN配置文件:
  1. nmcli connection import type openvpn file /path/to/config.ovpn
复制代码

1. 启动VPN连接:
  1. nmcli connection up config
复制代码

1. 安装OpenVPN客户端:
  1. sudo apt install openvpn
复制代码

1. 连接到VPN服务器:
  1. sudo openvpn --config /path/to/config.ovpn
复制代码

代理设置

1. 编辑环境变量文件:
  1. sudo nano /etc/environment
复制代码

1. 添加以下内容:
  1. http_proxy="http://proxy.example.com:8080/"
  2. https_proxy="http://proxy.example.com:8080/"
  3. ftp_proxy="ftp://proxy.example.com:8080/"
  4. no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
  5. HTTP_PROXY="http://proxy.example.com:8080/"
  6. HTTPS_PROXY="http://proxy.example.com:8080/"
  7. FTP_PROXY="ftp://proxy.example.com:8080/"
  8. NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
复制代码

1. 重新启动系统或重新登录以应用更改。

1. 创建APT代理配置文件:
  1. sudo nano /etc/apt/apt.conf.d/95proxies
复制代码

1. 添加以下内容:
  1. Acquire::http::Proxy "http://proxy.example.com:8080/";
  2. Acquire::https::Proxy "http://proxy.example.com:8080/";
复制代码
  1. # 配置HTTP代理
  2. git config --global http.proxy http://proxy.example.com:8080
  3. # 配置HTTPS代理
  4. git config --global https.proxy http://proxy.example.com:8080
  5. # 取消代理设置
  6. git config --global --unset http.proxy
  7. git config --global --unset https.proxy
复制代码

防火墙配置(UFW)

UFW(Uncomplicated Firewall)是Ubuntu上的默认防火墙工具,简化了防火墙配置:
  1. # 安装UFW
  2. sudo apt install ufw
  3. # 启用UFW
  4. sudo ufw enable
  5. # 查看UFW状态
  6. sudo ufw status verbose
  7. # 允许SSH访问
  8. sudo ufw allow ssh
  9. # 允许特定端口
  10. sudo ufw allow 80/tcp
  11. sudo ufw allow 443/tcp
  12. # 允许端口范围
  13. sudo ufw allow 6000:6007/tcp
  14. # 允许特定IP地址
  15. sudo ufw allow from 192.168.1.100
  16. # 允许特定IP地址访问特定端口
  17. sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
  18. # 拒绝特定端口
  19. sudo ufw deny 23/tcp
  20. # 删除规则
  21. sudo ufw delete allow 80/tcp
  22. # 重置UFW
  23. sudo ufw reset
  24. # 启用日志记录
  25. sudo ufw logging on
  26. # 查看日志
  27. sudo tail -f /var/log/ufw.log
复制代码

总结与最佳实践

本指南全面介绍了Ubuntu Linux网络设置的各个方面,从基础配置到高级网络管理。以下是一些关键的最佳实践,可以帮助您维护一个稳定、安全且高性能的网络环境:

常规最佳实践

1. 备份配置文件:在进行任何网络配置更改之前,始终备份原始配置文件。sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
2. 使用版本控制:对于关键服务器,考虑使用版本控制系统(如Git)管理网络配置文件。
3. 文档化配置:记录所有网络配置更改,包括原因、日期和执行人。
4. 测试配置:在生产环境应用之前,先在测试环境中验证配置更改。sudo netplan try
5. 监控系统:使用监控工具(如Nagios、Zabbix或Prometheus)持续监控网络性能和可用性。

备份配置文件:在进行任何网络配置更改之前,始终备份原始配置文件。
  1. sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
复制代码

使用版本控制:对于关键服务器,考虑使用版本控制系统(如Git)管理网络配置文件。

文档化配置:记录所有网络配置更改,包括原因、日期和执行人。

测试配置:在生产环境应用之前,先在测试环境中验证配置更改。
  1. sudo netplan try
复制代码

监控系统:使用监控工具(如Nagios、Zabbix或Prometheus)持续监控网络性能和可用性。

安全最佳实践

1. 最小权限原则:只开放必要的端口和服务。sudo ufw default deny incoming
sudo ufw default allow outgoing
2. 定期更新:保持系统和软件包更新,以修复已知的安全漏洞。sudo apt update && sudo apt upgrade
3. 使用防火墙:始终启用防火墙,并限制入站连接。sudo ufw enable
4. 禁用不必要的服务:禁用不需要的网络服务,减少攻击面。sudo systemctl disable servicename
5. 使用SSH密钥认证:禁用密码认证,使用SSH密钥进行远程访问。# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 设置PasswordAuthentication no
sudo systemctl restart sshd

最小权限原则:只开放必要的端口和服务。
  1. sudo ufw default deny incoming
  2. sudo ufw default allow outgoing
复制代码

定期更新:保持系统和软件包更新,以修复已知的安全漏洞。
  1. sudo apt update && sudo apt upgrade
复制代码

使用防火墙:始终启用防火墙,并限制入站连接。
  1. sudo ufw enable
复制代码

禁用不必要的服务:禁用不需要的网络服务,减少攻击面。
  1. sudo systemctl disable servicename
复制代码

使用SSH密钥认证:禁用密码认证,使用SSH密钥进行远程访问。
  1. # 编辑SSH配置文件
  2. sudo nano /etc/ssh/sshd_config
  3. # 设置PasswordAuthentication no
  4. sudo systemctl restart sshd
复制代码

性能最佳实践

1. 监控网络性能:定期检查网络性能指标,识别瓶颈。sar -n DEV 1 5
2. 优化TCP参数:根据网络环境调整TCP参数,提高吞吐量。# 编辑sysctl.conf
sudo nano /etc/sysctl.conf
# 添加性能优化参数
sudo sysctl -p
3.
  1. 使用QoS:为关键应用配置服务质量,确保带宽优先级。# 使用tc工具配置QoS
  2. sudo tc qdisc add dev eth0 root handle 1: htb default 30
复制代码
4.
  1. 考虑网络绑定:对于需要高可用性和高带宽的服务器,配置网络绑定。# Netplan绑定配置示例
  2. bonds:
  3. bond0:
  4.    interfaces: [eth0, eth1]
  5.    parameters:
  6.      mode: balance-rr
复制代码
5. 定期维护:定期检查网络设备、电缆和连接,确保物理连接的可靠性。

监控网络性能:定期检查网络性能指标,识别瓶颈。
  1. sar -n DEV 1 5
复制代码

优化TCP参数:根据网络环境调整TCP参数,提高吞吐量。
  1. # 编辑sysctl.conf
  2. sudo nano /etc/sysctl.conf
  3. # 添加性能优化参数
  4. sudo sysctl -p
复制代码

使用QoS:为关键应用配置服务质量,确保带宽优先级。
  1. # 使用tc工具配置QoS
  2. sudo tc qdisc add dev eth0 root handle 1: htb default 30
复制代码

考虑网络绑定:对于需要高可用性和高带宽的服务器,配置网络绑定。
  1. # Netplan绑定配置示例
  2. bonds:
  3. bond0:
  4.    interfaces: [eth0, eth1]
  5.    parameters:
  6.      mode: balance-rr
复制代码

定期维护:定期检查网络设备、电缆和连接,确保物理连接的可靠性。

通过遵循这些最佳实践,您可以确保Ubuntu系统的网络配置稳定、安全且高效,从而为您的应用和服务提供可靠的网络基础架构。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

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

本版积分规则