菜鸟科技网

Linux网络命令有哪些?常用命令怎么用?

Linux网络相关命令是系统管理员和开发人员日常工作中不可或缺的工具,它们帮助用户监控网络状态、配置网络接口、排查网络问题以及进行网络诊断,以下将详细介绍常用的Linux网络命令及其使用方法,包括ifconfig、ip、ping、traceroute、netstat、ss、tcpdump、curl、wget、nslookup、dig、hostname、route、iptables等,并通过表格形式总结部分命令的常用选项和功能。

Linux网络命令有哪些?常用命令怎么用?-图1
(图片来源网络,侵删)

在Linux系统中,网络配置和管理的第一步通常是查看和配置网络接口。ifconfig命令是传统的网络接口配置工具,虽然在新版Linux中逐渐被ip命令取代,但仍广泛使用。ifconfig eth0 up启用eth0接口,ifconfig eth0 192.168.1.100 netmask 255.255.255.0配置IP地址和子网掩码,而ip命令功能更强大,支持IPv4和IPv6,例如ip addr show显示所有网络接口信息,ip link set eth0 up启用接口,ip addr add 192.168.1.100/24 dev eth0添加IP地址。ip命令的输出更详细,适合复杂网络环境。

网络连通性测试是排查问题的常用手段,ping命令通过发送ICMP回显请求来检测目标主机是否可达。ping 8.8.8.8测试与Google DNS服务器的连通性,ping -c 4 192.168.1.1发送4个数据包后停止。traceroute(或traceroute6用于IPv6)则显示数据包到达目标主机所经过的路由路径,例如traceroute -n 8.8.8.8中的-n选项避免DNS解析,直接显示IP地址。mtr命令结合了ping和traceroute的功能,提供实时的网络路径分析,更适合深度诊断。

查看网络连接和端口状态是网络管理的重要环节。netstat命令曾是最常用的工具,例如netstat -tuln显示所有监听的TCP和UDP端口,netstat -an显示所有连接的详细信息,但ss命令已逐渐替代netstat,因为ss在处理大量连接时性能更优。ss -tulnnetstat -tuln功能相同,但执行速度更快;ss -t state established显示所有已建立的TCP连接,对于网络流量分析,tcpdump是强大的抓包工具,例如tcpdump -i eth0 -n port 80抓取eth0接口上HTTP(80端口)的数据包,-n选项避免DNS解析,-c选项可限制抓包数量。

文件传输和网页访问也是常见的网络操作。curlwget是下载网页或文件的命令行工具。curl支持更多协议和功能,例如curl -O http://example.com/file.zip下载文件并保持原文件名,curl -I https://example.com仅获取HTTP头部信息。wget则更简单直接,例如wget -r -np http://example.com/files递归下载目录中的文件。curl还支持发送POST请求、上传文件等高级功能,适合API测试。

Linux网络命令有哪些?常用命令怎么用?-图2
(图片来源网络,侵删)

域名解析和网络诊断方面,nslookupdig用于查询DNS记录。nslookup example.com查询example.com的A记录,nslookup -type=mx example.com查询MX邮件交换记录。dig命令提供更详细的输出,例如dig example.com ANY查询所有类型的DNS记录,dig +short example.com仅返回IP地址。hostname命令用于查看或设置系统主机名,例如hostname显示当前主机名,sudo hostnamectl set-hostname newname永久修改主机名(需systemd系统)。

网络路由和防火墙配置也是重要内容。route命令(或ip route)用于查看和修改路由表,例如route -n显示路由表,sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1添加静态路由。iptables是Linux内核的防火墙工具,例如sudo iptables -L -n列出所有规则,sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT允许SSH连接,sudo iptables -A INPUT -j DROP拒绝其他所有输入连接。firewalld是更现代的防火墙管理工具,支持区域和动态规则,例如sudo firewall-cmd --list-all查看防火墙规则。

以下是部分常用Linux网络命令的总结表格:

命令 常用选项 功能描述
ip addr show, link set, route 显示/配置网络接口、路由
ifconfig up, down, addr add 传统网络接口配置工具
ping -c(次数), -i(间隔) 测试网络连通性
traceroute -n(禁用DNS), -I(ICMP模式) 显示数据包路径
ss -tuln(监听端口), -state 显示网络连接(替代netstat)
netstat -tuln, -an 显示网络连接和端口状态
tcpdump -i(接口), -n(禁用DNS), -c(数量) 抓取网络数据包
curl -O(下载), -I(头部), -X POST 传输数据/下载文件
wget -r(递归), -np(不遍历父目录) 下载网页或文件
dig +short, ANY(所有记录) 查询DNS记录
iptables -L(列出), -A(添加), -j(动作) 配置防火墙规则

相关问答FAQs:

Linux网络命令有哪些?常用命令怎么用?-图3
(图片来源网络,侵删)
  1. 问题:ssnetstat有什么区别?为什么推荐使用ss
    解答: ssnetstat的替代品,主要区别在于性能和功能。ss内核直接读取网络连接信息,速度更快,尤其是在处理大量连接时(如高并发服务器)。ss支持更丰富的过滤选项(如按状态、端口、协议过滤),输出格式也更灵活。netstat则依赖/proc文件系统,性能较差,且部分功能已被ssip命令取代,在现代Linux系统中,推荐优先使用ss

  2. 问题:如何使用tcpdump抓取特定IP和端口的通信数据?
    解答: tcpdump可通过组合主机(host)和端口(port)选项抓取特定流量,抓取与IP地址168.1.100的80端口(HTTP)的TCP通信,命令为:sudo tcpdump -i eth0 -n 'host 192.168.1.100 and port 80 and tcp'-i eth0指定接口,-n避免DNS解析,引号内为过滤条件(支持andornot逻辑),如需保存到文件,添加-w capture.pcap;用-r capture.pcap读取保存的数据包。

分享:
扫描分享到社交APP
上一篇
下一篇