|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
引言
在当今数字时代,网络连接已成为计算机系统的核心功能之一。无论是个人使用还是企业部署,稳定、高效的网络连接都是确保系统正常运行的关键。Ubuntu作为最受欢迎的Linux发行版之一,提供了强大而灵活的网络配置选项,从简单的桌面连接到复杂的服务器网络管理。
本指南将全面介绍Ubuntu Linux网络设置的各个方面,从基础配置到高级网络管理,帮助您轻松解决连接问题并提升系统网络性能。无论您是Linux新手还是有经验的系统管理员,都能从本指南中找到有价值的信息。
Ubuntu网络基础
网络接口概念
在Ubuntu系统中,网络接口是计算机与网络通信的通道。每个网络接口都有一个唯一的名称,如eth0、wlan0、enp3s0等。这些接口可以是物理的(如以太网卡、无线网卡)或虚拟的(如回环接口、VPN接口)。
Ubuntu 18.04及以后版本使用了可预测的网络接口命名规则,这使得接口名称更加稳定和可预测。例如:
• eno1:代表主板上的嵌入式网卡
• enp2s0:代表PCI总线上的网卡
• wlp3s0:代表无线网卡
您可以使用以下命令查看系统中的网络接口:
或
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系统中管理网络的主要工具:
- # 显示网络接口信息
- ip addr show
- # 为接口分配IP地址
- sudo ip addr add 192.168.1.100/24 dev eth0
- # 启用网络接口
- sudo ip link set eth0 up
- # 添加默认路由
- sudo ip route add default via 192.168.1.1
- # 显示路由表
- ip route show
复制代码
虽然ifconfig已被ip命令取代,但许多用户仍然熟悉它:
- # 显示网络接口信息
- ifconfig
- # 为接口分配IP地址
- sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
- # 启用网络接口
- sudo ifconfig eth0 up
- # 添加默认路由
- sudo route add default gw 192.168.1.1
复制代码
静态IP与动态IP配置
静态IP地址适用于服务器或需要固定网络位置的设备。在Ubuntu 18.04及以后版本中,可以使用Netplan配置静态IP:
1. 编辑Netplan配置文件(文件名可能因系统而异):
- sudo nano /etc/netplan/01-netcfg.yaml
复制代码
1. 添加以下内容(根据您的网络环境调整):
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: no
- addresses:
- - 192.168.1.100/24
- gateway4: 192.168.1.1
- nameservers:
- addresses: [8.8.8.8, 8.8.4.4]
复制代码
1. 应用配置:
动态IP配置适用于大多数桌面环境,它允许系统从DHCP服务器自动获取网络配置:
使用Netplan配置DHCP:
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: yes
复制代码
应用配置:
网络管理工具
Netplan是Ubuntu 18.04及以后版本引入的网络配置工具,它使用YAML格式的配置文件,并可以生成NetworkManager或systemd-networkd的配置。
Netplan的主要优点:
• 声明式配置:您描述想要的网络状态,而不是如何实现它
• 统一配置:支持后端NetworkManager和systemd-networkd
• 易于使用:YAML格式简洁明了
Netplan配置示例:
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: yes
- eth1:
- dhcp4: no
- addresses: [192.168.2.100/24]
- gateway4: 192.168.2.1
- nameservers:
- addresses: [8.8.8.8, 8.8.4.4]
复制代码
应用Netplan配置:
测试Netplan配置:
NetworkManager主要用于桌面环境,提供了动态网络控制和配置。它可以通过命令行工具nmcli和图形界面进行管理。
使用nmcli配置网络:
- # 显示网络连接
- nmcli connection show
- # 创建新的有线连接
- sudo nmcli connection add type ethernet ifname eth0 con-name my-connection
- # 配置静态IP
- sudo nmcli connection modify my-connection ipv4.addresses 192.168.1.100/24
- sudo nmcli connection modify my-connection ipv4.gateway 192.168.1.1
- sudo nmcli connection modify my-connection ipv4.dns "8.8.8.8 8.8.4.4"
- sudo nmcli connection modify my-connection ipv4.method manual
- # 启用连接
- sudo nmcli connection up my-connection
复制代码
systemd-networkd是systemd套件的一部分,是一个低级网络配置服务,适用于服务器环境。
配置systemd-networkd:
1. 创建网络配置文件:
- sudo nano /etc/systemd/network/10-static.network
复制代码
1. 添加以下内容:
- [Match]
- Name=eth0
- [Network]
- Address=192.168.1.100/24
- Gateway=192.168.1.1
- DNS=8.8.8.8 8.8.4.4
复制代码
1. 启用并启动systemd-networkd服务:
- sudo systemctl enable systemd-networkd
- sudo systemctl start systemd-networkd
复制代码
高级网络配置
网络绑定(Bonding)
网络绑定(也称为链路聚合)是将多个网络接口组合成一个逻辑接口的技术,以提高带宽和提供冗余。
使用Netplan配置网络绑定:
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: no
- eth1:
- dhcp4: no
- bonds:
- bond0:
- dhcp4: no
- interfaces: [eth0, eth1]
- addresses: [192.168.1.100/24]
- gateway4: 192.168.1.1
- nameservers:
- addresses: [8.8.8.8, 8.8.4.4]
- parameters:
- mode: balance-rr
复制代码
应用配置:
网络绑定支持多种模式,每种模式适用于不同的场景:
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)。
验证绑定状态:
- cat /proc/net/bonding/bond0
复制代码
网络桥接(Bridging)
网络桥接是将多个网络接口连接在一起,使它们像一个网络一样工作的技术。常用于虚拟化环境,允许虚拟机直接连接到物理网络。
使用Netplan配置网络桥接:
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: no
- bridges:
- br0:
- dhcp4: no
- addresses: [192.168.1.100/24]
- gateway4: 192.168.1.1
- nameservers:
- addresses: [8.8.8.8, 8.8.4.4]
- interfaces: [eth0]
复制代码
应用配置:
传统的网桥管理工具brctl仍然可用:
- # 安装bridge-utils
- sudo apt install bridge-utils
- # 创建网桥
- sudo brctl addbr br0
- # 将接口添加到网桥
- sudo brctl addif br0 eth0
- # 显示网桥信息
- brctl show
复制代码
VLAN配置
虚拟局域网(VLAN)允许将物理网络划分为多个逻辑网络,提高网络安全性和性能。
使用Netplan配置VLAN:
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: no
- vlans:
- vlan100:
- id: 100
- link: eth0
- addresses: [192.168.100.100/24]
- gateway4: 192.168.100.1
- nameservers:
- addresses: [8.8.8.8, 8.8.4.4]
复制代码
应用配置:
传统的VLAN配置工具vconfig:
- # 安装vlan包
- sudo apt install vlan
- # 加载8021q模块
- sudo modprobe 8021q
- # 创建VLAN接口
- sudo vconfig add eth0 100
- # 为VLAN接口配置IP地址
- sudo ip addr add 192.168.100.100/24 dev eth0.100
- sudo ip link set eth0.100 up
复制代码
网络命名空间
网络命名空间是Linux内核的一个功能,允许创建独立的网络协议栈实例,每个实例有自己的接口、路由表和防火墙规则。这对于网络隔离、测试和容器化技术非常有用。
- # 创建网络命名空间
- sudo ip netns add myns
- # 列出所有网络命名空间
- sudo ip netns list
- # 在命名空间中执行命令
- sudo ip netns exec myns ip addr show
- # 在命名空间中启动shell
- sudo ip netns exec myns bash
- # 删除网络命名空间
- sudo ip netns del myns
复制代码
创建一对veth接口,将一个放在默认命名空间,另一个放在新命名空间:
- # 创建veth对
- sudo ip link add veth0 type veth peer name veth1
- # 将veth1移动到myns命名空间
- sudo ip link set veth1 netns myns
- # 配置默认命名空间中的veth0
- sudo ip addr add 10.0.0.1/24 dev veth0
- sudo ip link set veth0 up
- # 配置myns命名空间中的veth1
- sudo ip netns exec myns ip addr add 10.0.0.2/24 dev veth1
- sudo ip netns exec myns ip link set veth1 up
- sudo ip netns exec myns ip link set lo up
- # 测试连接
- ping 10.0.0.2
- 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
- 2. **IP地址配置错误**
- ```bash
- # 检查IP配置
- ip addr show
-
- # 重新配置IP地址
- 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
- 4. **DNS配置错误**
- ```bash
- # 检查DNS配置
- cat /etc/resolv.conf
-
- # 添加DNS服务器
- 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
- 2. **MTU设置不当**
- ```bash
- # 检查当前MTU设置
- ip link show eth0
-
- # 临时更改MTU
- sudo ip link set eth0 mtu 1492
-
- # 永久更改MTU(使用Netplan)
- # 编辑Netplan配置文件,添加mtu参数
- network:
- version: 2
- renderer: networkd
- ethernets:
- eth0:
- dhcp4: yes
- 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
- #### 无线网络连接问题
- **症状**:无法连接到Wi-Fi网络或连接频繁断开。
- **可能原因及解决方案**:
- 1. **无线网卡驱动问题**
- ```bash
- # 检查无线网卡状态
- lspci | grep Network
- lsusb | grep Wireless
-
- # 安装必要的驱动
- sudo apt install linux-firmware
复制代码
1. 网络管理器服务问题# 重启网络管理器服务
sudo systemctl restart NetworkManager
2. 无线电源管理问题“`bash检查无线电源管理状态iwconfig
网络管理器服务问题
- # 重启网络管理器服务
- sudo systemctl restart NetworkManager
复制代码
无线电源管理问题“`bash
iwconfig
# 禁用无线电源管理
sudo iwconfig wlan0 power off
- ### 网络诊断工具
- #### ping
- `ping`是最基本的网络诊断工具,用于测试主机之间的连通性:
- ```bash
- # 基本ping测试
- ping google.com
- # 指定ping次数
- ping -c 4 google.com
- # 指定数据包大小
- ping -s 1472 google.com
- # 持续ping并显示时间戳
- ping -D google.com
复制代码
traceroute显示数据包从源到目标所经过的路由:
- # 基本路由跟踪
- traceroute google.com
- # 使用ICMP协议(而不是UDP)
- traceroute -I google.com
- # 不解析主机名
- traceroute -n google.com
复制代码
mtr结合了ping和traceroute的功能,提供实时的网络诊断:
- # 安装mtr
- sudo apt install mtr
- # 运行mtr
- mtr google.com
- # 使用ICMP协议
- mtr -t google.com
复制代码
netstat显示网络连接、路由表、接口统计等网络相关信息:
- # 显示所有网络连接
- netstat -a
- # 显示TCP连接
- netstat -t
- # 显示监听端口
- netstat -l
- # 显示PID和程序名称
- netstat -p
- # 显示数字地址(不解析主机名)
- netstat -n
- # 显示路由表
- netstat -r
复制代码
ss是netstat的现代替代品,提供更详细的信息:
- # 显示所有TCP连接
- ss -t -a
- # 显示所有UDP连接
- ss -u -a
- # 显示监听套接字
- ss -l
- # 显示进程信息
- ss -p
- # 显示数字地址
- ss -n
- # 显示统计信息
- ss -s
复制代码
tcpdump是一个强大的网络包分析工具,用于捕获和分析网络流量:
- # 安装tcpdump
- sudo apt install tcpdump
- # 捕获指定接口的所有流量
- sudo tcpdump -i eth0
- # 捕获指定数量的数据包
- sudo tcpdump -i eth0 -c 10
- # 捕获指定主机的流量
- sudo tcpdump -i eth0 host google.com
- # 捕获指定端口的流量
- sudo tcpdump -i eth0 port 80
- # 保存捕获的数据包到文件
- sudo tcpdump -i eth0 -w capture.pcap
- # 读取保存的数据包文件
- 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
系统日志
- # 查看系统日志
- sudo journalctl -u systemd-networkd
- sudo journalctl -u NetworkManager
复制代码
内核日志
- # 查看内核日志中的网络相关信息
- dmesg | grep -i eth
- dmesg | grep -i network
复制代码
Netplan日志
- # 查看Netplan日志
- sudo journalctl -u systemd-networkd | grep netplan
复制代码
DHCP客户端日志
- # 查看DHCP客户端日志
- sudo journalctl -u systemd-networkd | grep dhcp
复制代码
网络性能优化
TCP/IP参数调优
通过调整TCP/IP参数,可以显著提高网络性能:
- # 编辑sysctl.conf文件
- sudo nano /etc/sysctl.conf
- # 添加以下参数
- # 增加TCP最大缓冲区大小
- net.core.rmem_max = 16777216
- net.core.wmem_max = 16777216
- # 增加TCP默认缓冲区大小
- net.ipv4.tcp_rmem = 4096 87380 16777216
- net.ipv4.tcp_wmem = 4096 65536 16777216
- # 启用TCP BBR拥塞控制算法
- net.ipv4.tcp_congestion_control = bbr
- # 启用TCP窗口缩放
- net.ipv4.tcp_window_scaling = 1
- # 启用TCP选择性确认
- net.ipv4.tcp_sack = 1
- # 增加TCP最大连接数
- net.core.somaxconn = 65535
- # 增加TCP时间等待套接字池大小
- net.ipv4.tcp_max_tw_buckets = 1440000
- # 启用TCP快速打开
- net.ipv4.tcp_fastopen = 3
- # 减少TCP keepalive时间
- net.ipv4.tcp_keepalive_time = 600
- net.ipv4.tcp_keepalive_intvl = 60
- net.ipv4.tcp_keepalive_probes = 3
- # 应用更改
- sudo sysctl -p
复制代码
网络缓冲区优化
优化网络缓冲区可以提高数据传输效率:
- # 查看当前网络缓冲区设置
- cat /proc/sys/net/core/rmem_max
- cat /proc/sys/net/core/wmem_max
- # 临时增加网络缓冲区大小
- sudo sysctl -w net.core.rmem_max=16777216
- sudo sysctl -w net.core.wmem_max=16777216
- # 永久增加网络缓冲区大小
- 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
复制代码
网络服务质量(QoS)配置
使用tc(Traffic Control)工具配置QoS,可以优化网络流量和带宽分配:
- # 安装tc工具(通常包含在iproute2包中)
- sudo apt install iproute2
- # 查看当前队列规则
- tc qdisc show
- # 创建分层令牌桶(HTB)队列规则
- sudo tc qdisc add dev eth0 root handle 1: htb default 30
- # 创建根类
- sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit
- # 创建子类(例如,为不同类型的流量分配不同的带宽)
- sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 500mbit ceil 800mbit
- sudo tc class add dev eth0 parent 1:1 classid 1:20 htb rate 300mbit ceil 600mbit
- sudo tc class add dev eth0 parent 1:1 classid 1:30 htb rate 200mbit ceil 400mbit
- # 创建过滤器,将流量分配到不同的类
- sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
- sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:20
- # 显示队列规则
- sudo tc class show dev eth0
- sudo tc filter show dev eth0
- # 删除队列规则
- sudo tc qdisc del dev eth0 root
复制代码
网络安全设置
UFW(Uncomplicated Firewall)是Ubuntu上的默认防火墙工具,简化了iptables的配置:
- # 安装UFW
- sudo apt install ufw
- # 启用UFW
- sudo ufw enable
- # 查看UFW状态
- sudo ufw status
- # 允许特定端口
- sudo ufw allow 22/tcp
- sudo ufw allow 80/tcp
- sudo ufw allow 443/tcp
- # 允许特定IP地址
- sudo ufw allow from 192.168.1.100
- # 允许特定IP地址访问特定端口
- sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
- # 拒绝特定端口
- sudo ufw deny 23/tcp
- # 删除规则
- sudo ufw delete allow 22/tcp
- # 重置UFW
- sudo ufw reset
复制代码
对于需要更精细控制的场景,可以直接使用iptables:
- # 查看当前iptables规则
- sudo iptables -L -v -n
- # 允许本地回环
- sudo iptables -A INPUT -i lo -j ACCEPT
- # 允许已建立的连接
- sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- # 允许特定端口
- sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- # 允许ICMP(ping)
- sudo iptables -A INPUT -p icmp -j ACCEPT
- # 拒绝所有其他入站流量
- sudo iptables -A INPUT -j DROP
- # 保存iptables规则
- sudo apt install iptables-persistent
- sudo netfilter-persistent save
复制代码
特殊网络环境配置
无线网络配置
- network:
- version: 2
- renderer: networkd
- wifis:
- wlp3s0:
- dhcp4: yes
- access-points:
- "network_ssid_name":
- password: "password_here"
复制代码
应用配置:
- # 扫描可用的无线网络
- nmcli dev wifi list
- # 连接到无线网络
- nmcli dev wifi connect "SSID" password "password"
- # 显示无线连接状态
- nmcli connection show
- # 断开无线连接
- nmcli dev disconnect wlp3s0
复制代码
VPN配置
1. 安装必要的软件包:
- sudo apt install network-manager-openvpn network-manager-openvpn-gnome
复制代码
1. 重启NetworkManager:
- sudo systemctl restart NetworkManager
复制代码
1. 导入OpenVPN配置文件:
- nmcli connection import type openvpn file /path/to/config.ovpn
复制代码
1. 启动VPN连接:
- nmcli connection up config
复制代码
1. 安装OpenVPN客户端:
1. 连接到VPN服务器:
- sudo openvpn --config /path/to/config.ovpn
复制代码
代理设置
1. 编辑环境变量文件:
- sudo nano /etc/environment
复制代码
1. 添加以下内容:
- http_proxy="http://proxy.example.com:8080/"
- https_proxy="http://proxy.example.com:8080/"
- ftp_proxy="ftp://proxy.example.com:8080/"
- no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
- HTTP_PROXY="http://proxy.example.com:8080/"
- HTTPS_PROXY="http://proxy.example.com:8080/"
- FTP_PROXY="ftp://proxy.example.com:8080/"
- NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
复制代码
1. 重新启动系统或重新登录以应用更改。
1. 创建APT代理配置文件:
- sudo nano /etc/apt/apt.conf.d/95proxies
复制代码
1. 添加以下内容:
- Acquire::http::Proxy "http://proxy.example.com:8080/";
- Acquire::https::Proxy "http://proxy.example.com:8080/";
复制代码- # 配置HTTP代理
- git config --global http.proxy http://proxy.example.com:8080
- # 配置HTTPS代理
- git config --global https.proxy http://proxy.example.com:8080
- # 取消代理设置
- git config --global --unset http.proxy
- git config --global --unset https.proxy
复制代码
防火墙配置(UFW)
UFW(Uncomplicated Firewall)是Ubuntu上的默认防火墙工具,简化了防火墙配置:
- # 安装UFW
- sudo apt install ufw
- # 启用UFW
- sudo ufw enable
- # 查看UFW状态
- sudo ufw status verbose
- # 允许SSH访问
- sudo ufw allow ssh
- # 允许特定端口
- sudo ufw allow 80/tcp
- sudo ufw allow 443/tcp
- # 允许端口范围
- sudo ufw allow 6000:6007/tcp
- # 允许特定IP地址
- sudo ufw allow from 192.168.1.100
- # 允许特定IP地址访问特定端口
- sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
- # 拒绝特定端口
- sudo ufw deny 23/tcp
- # 删除规则
- sudo ufw delete allow 80/tcp
- # 重置UFW
- sudo ufw reset
- # 启用日志记录
- sudo ufw logging on
- # 查看日志
- 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)持续监控网络性能和可用性。
备份配置文件:在进行任何网络配置更改之前,始终备份原始配置文件。
- sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
复制代码
使用版本控制:对于关键服务器,考虑使用版本控制系统(如Git)管理网络配置文件。
文档化配置:记录所有网络配置更改,包括原因、日期和执行人。
测试配置:在生产环境应用之前,先在测试环境中验证配置更改。
监控系统:使用监控工具(如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
最小权限原则:只开放必要的端口和服务。
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
复制代码
定期更新:保持系统和软件包更新,以修复已知的安全漏洞。
- sudo apt update && sudo apt upgrade
复制代码
使用防火墙:始终启用防火墙,并限制入站连接。
禁用不必要的服务:禁用不需要的网络服务,减少攻击面。
- sudo systemctl disable servicename
复制代码
使用SSH密钥认证:禁用密码认证,使用SSH密钥进行远程访问。
- # 编辑SSH配置文件
- sudo nano /etc/ssh/sshd_config
- # 设置PasswordAuthentication no
- sudo systemctl restart sshd
复制代码
性能最佳实践
1. 监控网络性能:定期检查网络性能指标,识别瓶颈。sar -n DEV 1 5
2. 优化TCP参数:根据网络环境调整TCP参数,提高吞吐量。# 编辑sysctl.conf
sudo nano /etc/sysctl.conf
# 添加性能优化参数
sudo sysctl -p
3. - 使用QoS:为关键应用配置服务质量,确保带宽优先级。# 使用tc工具配置QoS
- sudo tc qdisc add dev eth0 root handle 1: htb default 30
复制代码 4. - 考虑网络绑定:对于需要高可用性和高带宽的服务器,配置网络绑定。# Netplan绑定配置示例
- bonds:
- bond0:
- interfaces: [eth0, eth1]
- parameters:
- mode: balance-rr
复制代码 5. 定期维护:定期检查网络设备、电缆和连接,确保物理连接的可靠性。
监控网络性能:定期检查网络性能指标,识别瓶颈。
优化TCP参数:根据网络环境调整TCP参数,提高吞吐量。
- # 编辑sysctl.conf
- sudo nano /etc/sysctl.conf
- # 添加性能优化参数
- sudo sysctl -p
复制代码
使用QoS:为关键应用配置服务质量,确保带宽优先级。
- # 使用tc工具配置QoS
- sudo tc qdisc add dev eth0 root handle 1: htb default 30
复制代码
考虑网络绑定:对于需要高可用性和高带宽的服务器,配置网络绑定。
- # Netplan绑定配置示例
- bonds:
- bond0:
- interfaces: [eth0, eth1]
- parameters:
- mode: balance-rr
复制代码
定期维护:定期检查网络设备、电缆和连接,确保物理连接的可靠性。
通过遵循这些最佳实践,您可以确保Ubuntu系统的网络配置稳定、安全且高效,从而为您的应用和服务提供可靠的网络基础架构。 |
|