858 字
3 分钟
Linux操作大全(五):网络配置与管理详解
Linux操作大全(五):网络配置与管理详解
本文是Linux操作大全系列的第五篇,详细讲解Linux网络配置和管理。
一、网络基础概念
1.1 IP地址
IP地址是网络中设备的唯一标识,类似于门牌号。
IPv4格式:192.168.1.100
IP地址分类:
| 类型 | 范围 | 说明 |
|---|---|---|
| A类 | 1.0.0.0 - 126.255.255.255 | 大型网络 |
| B类 | 128.0.0.0 - 191.255.255.255 | 中型网络 |
| C类 | 192.0.0.0 - 223.255.255.255 | 小型网络 |
| 私有地址 | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | 局域网使用 |
1.2 子网掩码
子网掩码用于划分网络地址和主机地址。
常见子网掩码:
| 掩码 | CIDR | 可用主机数 |
|---|---|---|
| 255.255.255.0 | /24 | 254 |
| 255.255.0.0 | /16 | 65534 |
| 255.0.0.0 | /8 | 16777214 |
1.3 网关
网关是连接不同网络的”关口”,通常是路由器的IP地址。
1.4 DNS
DNS(Domain Name System)将域名解析为IP地址。
常见DNS服务器:
| DNS | IP地址 |
|---|---|
| 阿里DNS | 223.5.5.5, 223.6.6.6 |
| 腾讯DNS | 119.29.29.29 |
| Google DNS | 8.8.8.8, 8.8.4.4 |
| Cloudflare DNS | 1.1.1.1 |
二、查看网络信息
2.1 ip命令(推荐)
# 查看所有网络接口ip addr showip a
# 查看指定接口ip addr show eth0
# 查看IP地址(简略)ip -4 addr showip -6 addr show
# 查看路由表ip route showip r
# 查看邻居表(ARP)ip neigh show2.2 ifconfig命令(旧版)
# 安装net-tools(如果没有)<a id="apt"></a>sudo apt install net-tools
# 查看所有接口ifconfig
# 查看指定接口ifconfig eth0
# 启用接口sudo ifconfig eth0 up
# 禁用接口sudo ifconfig eth0 down
# 设置IP地址sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.02.3 hostname命令
# 查看主机名hostname
# 查看详细信息hostnamectl
# 设置主机名sudo hostnamectl set-hostname new-hostname三、网络配置方法
3.1 Netplan(Ubuntu 18.04+)
Netplan是Ubuntu 18.04引入的网络配置工具。
配置文件位置:/etc/netplan/
# 查看配置文件ls /etc/netplan/
# 编辑配置sudo vim /etc/netplan/01-netcfg.yaml静态IP配置示例:
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 223.6.6.6DHCP配置示例:
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: yes应用配置:
# 测试配置sudo netplan try
# 应用配置sudo netplan apply3.2 /etc/network/interfaces(Debian传统)
# 编辑配置sudo vim /etc/network/interfaces静态IP配置:
auto eth0iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 223.5.5.5 223.6.6.6DHCP配置:
auto eth0iface eth0 inet dhcp重启网络:
sudo systemctl restart networking3.3 NetworkManager(桌面版)
# 查看连接nmcli connection show
# 查看设备状态nmcli device status
# 创建静态IP连接sudo nmcli connection add type ethernet con-name static-eth0 ifname eth0 \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "223.5.5.5 223.6.6.6" \ ipv4.method manual
# 启用连接sudo nmcli connection up static-eth0
# 修改连接sudo nmcli connection modify static-eth0 ipv4.addresses 192.168.1.101/24
# 删除连接sudo nmcli connection delete static-eth03.4 /etc/sysconfig/network-scripts(CentOS 7)
# 编辑配置sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0静态IP配置:
TYPE=EthernetBOOTPROTO=staticNAME=eth0DEVICE=eth0ONBOOT=yesIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=223.5.5.5DNS2=223.6.6.6重启网络:
sudo systemctl restart network四、DNS配置
4.1 /etc/resolv.conf
# 查看DNS配置cat /etc/resolv.conf
# 临时修改DNSsudo vim /etc/resolv.conf添加内容:
nameserver 223.5.5.5nameserver 223.6.6.6注意:此文件可能会被DHCP覆盖,永久修改需要在Netplan或NetworkManager中配置。
4.2 systemd-resolved(Ubuntu 18.04+)
# 查看DNS状态resolvectl status
# 查看DNS统计resolvectl statistics
# 刷新DNS缓存sudo resolvectl flush-caches4.3 测试DNS解析
# 使用nslookupnslookup example.com
# 使用digdig example.comdig example.com Adig example.com MXdig @8.8.8.8 example.com五、网络诊断工具
5.1 ping命令
功能:测试网络连通性。
# 基本pingping example.com
# 指定次数ping -c 4 example.com
# 指定间隔(秒)ping -i 0.5 example.com
# 指定包大小ping -s 1024 example.com
# 指定TTLping -t 64 example.com
# 指定接口ping -I eth0 example.com5.2 traceroute命令
功能:追踪数据包的路由路径。
# 基本traceroutetraceroute example.com
# 使用TCP(更准确)sudo traceroute -T example.com
# 使用UDPtraceroute -U example.com
# 指定端口traceroute -p 80 example.com5.3 mtr命令
功能:实时追踪路由(结合ping和traceroute)。
# 基本mtrmtr example.com
# 报告模式mtr -r -c 100 example.com
# 使用TCPsudo mtr -T example.com5.4 netstat / ss命令
功能:查看网络连接、监听端口等。
# 查看所有监听端口sudo netstat -tulnsudo ss -tuln
# 查看所有连接sudo netstat -ansudo ss -an
# 查看指定端口sudo netstat -tuln | grep :80sudo ss -tuln | grep :80
# 查看进程使用的端口sudo netstat -tulnpsudo ss -tulnp
# 查看路由表netstat -rip route5.5 curl命令
功能:发送HTTP请求。
# 基本GET请求curl https://example.com
# 下载文件curl -O https://example.com/file.zip
# 指定输出文件curl -o output.html https://example.com
# POST请求curl -X POST -d "key=value" https://example.com/api
# 携带Headercurl -H "Content-Type: application/json" https://example.com
# 显示详细信息curl -v https://example.com
# 跟随重定向curl -L https://example.com
# 忽略SSL证书验证curl -k https://example.com5.6 wget命令
功能:下载文件。
# 下载文件wget https://example.com/file.zip
# 指定输出文件名wget -O output.zip https://example.com/file.zip
# 后台下载wget -b https://example.com/large-file.zip
# 断点续传wget -c https://example.com/large-file.zip
# 递归下载(整站)wget -r -np -k https://example.com
# 限速下载wget --limit-rate=1m https://example.com/file.zip5.7 nmap命令
功能:网络扫描和端口探测。
# 安装nmapsudo apt install nmap
# 扫描指定IP的端口nmap 192.168.1.100
# 扫描指定端口nmap -p 80,443 192.168.1.100
# 扫描端口范围nmap -p 1-1000 192.168.1.100
# 扫描整个网段nmap 192.168.1.0/24
# 服务版本探测nmap -sV 192.168.1.100
# 操作系统探测sudo nmap -O 192.168.1.100六、防火墙配置
6.1 ufw(Ubuntu推荐)
ufw = Uncomplicated Firewall,简单易用的防火墙。
# 启用防火墙sudo ufw enable
# 禁用防火墙sudo ufw disable
# 查看状态sudo ufw statussudo ufw status verbosesudo ufw status numbered
# 允许端口sudo ufw allow 22 # SSHsudo ufw allow 80 # HTTPsudo ufw allow 443 # HTTPSsudo ufw allow 8080 # 自定义端口
# 允许端口范围sudo ufw allow 3000:4000/tcp
# 允许特定IPsudo ufw allow from 192.168.1.100
# 允许特定IP访问特定端口sudo ufw allow from 192.168.1.100 to any port 22
# 拒绝端口sudo ufw deny 23
# 删除规则sudo ufw delete allow 80sudo ufw delete 1 # 按编号删除
# 重置防火墙sudo ufw reset6.2 firewalld(CentOS/RHEL)
# 启动防火墙sudo systemctl start firewalld
# 查看状态sudo firewall-cmd --state
# 查看开放的端口sudo firewall-cmd --list-all
# 开放端口sudo firewall-cmd --permanent --add-port=80/tcpsudo firewall-cmd --permanent --add-port=443/tcp
# 重载配置sudo firewall-cmd --reload
# 关闭端口sudo firewall-cmd --permanent --remove-port=80/tcp
# 查看服务sudo firewall-cmd --list-services
# 开放服务sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=https6.3 iptables(底层工具)
# 查看规则sudo iptables -L -nsudo iptables -L -n -v
# 允许SSHsudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTPsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许HTTPSsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许已建立的连接sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 拒绝其他输入sudo iptables -A INPUT -j DROP
# 删除规则sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
# 清空规则sudo iptables -F
# 保存规则sudo iptables-save > /etc/iptables.rules
# 恢复规则sudo iptables-restore < /etc/iptables.rules七、SSH远程连接
7.1 SSH基础
# 基本连接ssh username@hostname
# 指定端口ssh -p 2222 username@hostname
# 使用密钥连接ssh -i ~/.ssh/id_rsa username@hostname
# 执行远程命令ssh username@hostname ls -la
# 保持连接ssh -o ServerAliveInterval=60 username@hostname7.2 SSH密钥认证
# 生成密钥对ssh-keygen -t ed25519 -C "your_email@example.com"
# 或使用RSAssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 复制公钥到服务器ssh-copy-id username@hostname
# 或手动复制cat ~/.ssh/id_ed25519.pub | ssh username@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"7.3 SSH配置文件
编辑 ~/.ssh/config:
Host myserver HostName 192.168.1.100 User ubuntu Port 22 IdentityFile ~/.ssh/id_ed25519
Host production HostName prod.example.com User deploy Port 2222 IdentityFile ~/.ssh/prod_key然后可以直接:
ssh myserverssh production7.4 SCP文件传输
# 上传文件scp file.txt username@hostname:/home/user/
# 下载文件scp username@hostname:/home/user/file.txt ./
# 上传目录scp -r directory/ username@hostname:/home/user/
# 指定端口scp -P 2222 file.txt username@hostname:/home/user/7.5 SFTP交互式传输
# 连接SFTPsftp username@hostname
# 常用命令sftp> ls # 远程列表sftp> lls # 本地列表sftp> pwd # 远程当前目录sftp> lpwd # 本地当前目录sftp> get file # 下载文件sftp> put file # 上传文件sftp> mkdir dir # 创建远程目录sftp> exit # 退出7.6 SSH安全加固
编辑 /etc/ssh/sshd_config:
# 禁止root登录PermitRootLogin no
# 禁止密码登录(只允许密钥)PasswordAuthentication no
# 修改默认端口Port 2222
# 限制登录用户AllowUsers ubuntu deploy
# 限制最大尝试次数MaxAuthTries 3
# 设置超时时间ClientAliveInterval 300ClientAliveCountMax 2重启SSH服务:
sudo systemctl restart sshd八、网络服务管理
8.1 systemd管理网络服务
# 查看网络服务状态sudo systemctl status networkingsudo systemctl status NetworkManager
# 重启网络服务sudo systemctl restart networking
# 启用/禁用NetworkManagersudo systemctl enable NetworkManagersudo systemctl disable NetworkManager8.2 网络接口管理
# 启用接口sudo ip link set eth0 up
# 禁用接口sudo ip link set eth0 down
# 设置MTUsudo ip link set eth0 mtu 9000九、实战:配置Web服务器网络
9.1 配置静态IP
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 223.6.6.69.2 配置防火墙
# 启用防火墙sudo ufw enable
# 允许SSHsudo ufw allow 22/tcp
# 允许HTTP和HTTPSsudo ufw allow 80/tcpsudo ufw allow 443/tcp
# 查看状态sudo ufw status9.3 配置SSH安全
# 编辑SSH配置sudo vim /etc/ssh/sshd_config
# 修改端口Port 2222
# 禁止root登录PermitRootLogin no
# 重启SSHsudo systemctl restart sshd
# 更新防火墙规则sudo ufw allow 2222/tcpsudo ufw delete allow 22/tcp十、总结
本章学习了:
- 网络基础:IP地址、子网掩码、网关、DNS
- 查看网络:ip、ifconfig、hostname
- 网络配置:Netplan、interfaces、NetworkManager
- DNS配置:resolv.conf、systemd-resolved
- 网络诊断:ping、traceroute、mtr、curl、wget、nmap
- 防火墙:ufw、firewalld、iptables
- SSH:密钥认证、安全加固、SCP/SFTP
下一章预告:《Linux操作大全(六):进程管理与服务管理详解》
如有疑问或发现错误,欢迎在评论区指出!
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Linux操作大全(五):网络配置与管理详解
https://emilia520.icu/posts/linux-manual-05-network/ 部分信息可能已经过时
相关文章 智能推荐
1
Linux操作大全(三):用户与权限管理详解
Linux常见操作 深入讲解Linux用户管理、组管理、sudo权限、PAM认证等知识,让你彻底搞懂Linux的权限体系
2
Linux操作大全(六):进程管理与服务管理详解
Linux常见操作 全面讲解Linux进程管理、服务管理、systemd、定时任务等知识,让你轻松掌控系统运行状态
3
Linux操作大全(八):磁盘与存储管理详解
Linux常见操作 全面讲解Linux磁盘管理、文件系统、RAID、LVM等知识,让你轻松管理Linux存储
4
Linux操作大全(二):文件与目录操作详解
Linux常见操作 详细讲解Linux文件和目录的各种操作,包括创建、复制、移动、删除、查找、压缩等,每个命令都有实际示例
5
Linux操作大全(四):软件包管理详解
Linux常见操作 全面讲解Linux软件包管理,包括apt、yum、dnf、snap、源码编译安装等,让你轻松管理Linux上的软件








