Linux网络命令大全
Linux系统在网络管理中占据重要地位。无论是服务器管理、网络诊断还是安全维护,Linux网络命令都能提供强大的支持。
Linux系统在网络管理中占据重要地位。无论是服务器管理、网络诊断还是安全维护,Linux网络命令都能提供强大的支持。
1、网络配置命令
1.1 ifconfig
ifconfig(interface configuration)是用于配置网络接口的命令。尽管被新的ip命令所取代,但它仍然在很多系统中使用。
- 查看网络接口配置
ifconfig
输出示例:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::a00:27ff:fe4e:66a1 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:4e:66:a1 txqueuelen 1000 (Ethernet)
RX packets 3190 bytes 2456758 (2.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2901 bytes 379258 (370.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 设置IP地址
sudo ifconfig eth0 192.168.100.101
- 设置子网掩码
sudo ifconfig eth0 netmask 255.255.255.0
- 启用/禁用网络接口
sudo ifconfig eth0 up
sudo ifconfig eth0 down
1.2 ip
ip
命令是更现代的网络配置工具,功能比ifconfig
更强大。
- 查看所有网络接口
ip addr
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:4e:66:a1 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/24 brd 192.168.100.255 scope global dynamic eth0
valid_lft 86329sec preferred_lft 86329sec
inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
valid_lft forever preferred_lft forever
- 设置IP地址
sudo ip addr add 192.168.100.101/24 dev eth0
- 删除IP地址
sudo ip addr del 192.168.100.101/24 dev eth0
- 启用/禁用网络接口
sudo ip link set eth0 up
sudo ip link set eth0 down
1.3 ping
ping
命令用于测试网络主机之间的连通性。
基本用法
- 测试与某个主机的连接
ping google.com
输出示例:
PING google.com (142.250.72.14) 56(84) bytes of data.
64 bytes from muc11s06-in-f14.1e100.net (142.250.72.14): icmp_seq=1 ttl=115 time=21.3 ms
64 bytes from muc11s06-in-f14.1e100.net (142.250.72.14): icmp_seq=2 ttl=115 time=20.6 ms
常用选项
- 设置ping次数
ping -c 4 google.com
- 设置数据包大小
ping -s 128 google.com
1.4 traceroute
traceroute
命令用于跟踪数据包从源到目的地的路径。
基本用法
- 跟踪到某个主机的路径
traceroute google.com
输出示例:
traceroute to google.com (142.250.72.14), 30 hops max, 60 byte packets
1 192.168.100.1 (192.168.100.1) 2.374 ms 2.361 ms 2.350 ms
2 10.0.0.1 (10.0.0.1) 8.259 ms 8.243 ms 8.228 ms
3 142.250.72.14 (142.250.72.14) 19.085 ms 19.068 ms 19.051 ms
常用选项
- 设置最大跳数
traceroute -m 20 google.com
- 使用特定的网络协议
traceroute -I google.com # 使用ICMP
1.5 mtr
mtr
(My Traceroute)结合了ping
和traceroute
的功能,提供实时更新的网络路径信息。
基本用法
- 使用
mtr
跟踪到某个主机的路径:
mtr google.com
常用选项
- 设置显示次数
mtr -c 10 google.com
- 生成报告
mtr -r google.com
2、网络诊断命令
2.1 nslookup
nslookup
命令用于查询DNS记录,解决域名解析问题。
基本用法
- 查询域名的IP地址
nslookup google.com
输出示例:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 142.250.72.14
查询指定DNS服务器
- 使用特定的DNS服务器进行查询
nslookup google.com 8.8.8.8
2.2 dig
dig
(Domain Information Groper)是一个灵活的DNS查询工具。
基本用法
- 查询域名的A记录
dig google.com
输出示例:
; <<>> DiG 9.16.1-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 299 IN A 142.250.72.14
;; Query time: 20 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Sat Jul 06 10:00:00 UTC 2024
;; MSG SIZE rcvd: 55
查询特定类型的DNS记录
- 查询MX记录
dig google.com MX
- 查询NS记录
dig google.com NS
3、网络监听命令
3.1 tcpdump
tcpdump
是一个功能强大的命令行网络流量分析工具,用于捕获和分析网络数据包。它允许用户查看网络上的数据包流动情况,帮助诊断网络问题。
基本用法
- 捕获所有流量
sudo tcpdump
输出示例:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
10:00:00.000000 IP myhost.local > 192.168.100.1: ICMP echo request, id 12345, seq 1, length 64
10:00:00.000001 IP 192.168.100.1 > myhost.local: ICMP echo reply, id 12345, seq 1, length 64
常用选项
- 指定网络接口
sudo tcpdump -i eth0
- 捕获指定数量的数据包
sudo tcpdump -c 10
- 只捕获特定端口的流量
sudo tcpdump port 80
- 将捕获的数据包保存到文件
sudo tcpdump -w capture.pcap
- 从文件读取数据包
sudo tcpdump -r capture.pcap
3.2 wireshark
wireshark
是一个图形化的网络分析工具,比tcpdump
更直观,适合深入分析网络流量。
基本用法
- 启动Wireshark
wireshark
在Wireshark界面中,选择网络接口开始捕获流量。可以使用过滤器筛选特定的流量,如http
、tcp.port==80
等。
4、网络监控工具
4.1 netstat
netstat
(network statistics)命令用于显示网络连接、路由表、接口状态等信息。
基本用法
- 查看所有活动的网络连接
netstat
输出示例:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 myhost.local:ssh 192.168.100.2:49152 ESTABLISHED
常用选项
- 查看所有网络连接,包括监听的
netstat -a
- 显示路由表
netstat -r
- 显示接口统计信息
netstat -i
- 持续更新网络连接状态
netstat -c
4.2 ss
ss
(socket statistics)是一个新的网络状态监控工具,比netstat
更高效。
基本用法
- 查看所有网络连接
ss
输出示例:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 myhost.local:ssh 192.168.100.2:49152
常用选项
- 查看所有监听的端口
ss -l
- 显示TCP连接
ss -t
- 显示UDP连接
ss -u
- 显示进程相关的套接字
ss -p
5、网络流量分析工具
5.1 iftop
iftop
是一个实时显示网络接口流量的工具,用于监控实时网络使用情况。
基本用法
- 启动
iftop
监控网络接口
sudo iftop
输出示例:
Interface: eth0
Hostname: myhost.local
10.0.0.1 => 192.168.100.1 0b 0b 0b
10.0.0.1 <= 192.168.100.1 0b 0b 0b
常用选项
- 指定网络接口
sudo iftop -i eth0
- 显示流量单位为字节
sudo iftop -B
5.2 nload
nload
是一个实时网络流量监控工具,以图形化方式显示流量。
基本用法
- 启动
nload
监控网络接口
sudo nload
输出示例:
Device eth0 [10.0.0.1] (1/1):
In: 0.00 kBit/s
Out: 0.00 kBit/s
常用选项
- 指定网络接口
sudo nload eth0
6、网络服务管理与文件传输命令
6.1 systemctl
systemctl
命令是用来管理systemd系统和服务的工具。它可以用来启动、停止、重启服务,查看服务状态等。
基本用法
- 启动服务
sudo systemctl start <service_name>
- 停止服务
sudo systemctl stop <service_name>
- 重启服务
sudo systemctl restart <service_name>
- 查看服务状态
sudo systemctl status <service_name>
输出示例:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2024-07-08 10:00:00 UTC; 5min ago
常用选项
- 启用服务开机自启动
sudo systemctl enable <service_name>
- 禁用服务开机自启动
sudo systemctl disable <service_name>
- 重新加载服务配置
sudo systemctl reload <service_name>
6.2 service
service
命令是传统的SysVinit和Upstart系统中管理服务的工具。尽管在systemd系统中被systemctl
取代,但仍在很多系统中使用。
基本用法
- 启动服务
sudo service <service_name> start
- 停止服务
sudo service <service_name> stop
- 重启服务
sudo service <service_name> restart
- 查看服务状态
sudo service <service_name> status
输出示例:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2024-07-08 10:00:00 UTC; 5min ago
6.3 scp
scp
(secure copy)命令用于在本地和远程主机之间复制文件,使用SSH协议确保数据的安全传输。
基本用法
- 从本地复制文件到远程主机
scp local_file user@remote_host:/remote/directory
- 从远程主机复制文件到本地
scp user@remote_host:/remote/file local_directory
- 复制目录
scp -r local_directory user@remote_host:/remote/directory
常用选项
- 指定SSH端口
scp -P 2222 local_file user@remote_host:/remote/directory
- 显示传输进度
scp -v local_file user@remote_host:/remote/directory
6.4 rsync
rsync
命令用于高效地在本地和远程主机之间同步文件和目录,支持增量传输。
基本用法
- 同步本地目录到远程主机
rsync -av local_directory/ user@remote_host:/remote/directory/
- 从远程主机同步目录到本地
rsync -av user@remote_host:/remote/directory/ local_directory/
常用选项
- 压缩传输数据
rsync -avz local_directory/ user@remote_host:/remote/directory/
- 删除目标目录中源目录不存在的文件
rsync -av --delete local_directory/ user@remote_host:/remote/directory/
- 仅传输文件列表,不进行实际传输
rsync -avn local_directory/ user@remote_host:/remote/directory/
6.5 ftp
ftp
(file transfer protocol)命令用于在本地和远程主机之间传输文件。虽然FTP协议在安全性方面较弱,但仍然广泛使用。
基本用法
- 连接到FTP服务器
ftp ftp.example.com
提示输入用户名和密码后,进入FTP命令行模式。
- 上传文件
put local_file
- 下载文件
get remote_file
- 列出远程目录文件
ls
- 切换目录
cd remote_directory
- 退出FTP会话
bye
常用选项
- 使用被动模式
ftp -p ftp.example.com
6.6 sftp
sftp
(secure file transfer protocol)命令类似于ftp
,但使用SSH协议进行安全传输。
基本用法
- 连接到SFTP服务器
sftp user@remote_host
提示输入密码后,进入SFTP命令行模式。
- 上传文件
put local_file
- 下载文件
get remote_file
- 列出远程目录文件
ls
- 切换目录
cd remote_directory
- 退出SFTP会话
bye
常用选项
- 指定SSH端口
sftp -P 2222 user@remote_host
7、网络安全工具与高级网络命令
7.1 iptables
iptables
是Linux内核中的防火墙工具,用于设置、维护和检查IPv4数据包过滤规则。通过iptables
,可以实现网络流量的控制和安全防护。
基本用法
- 显示当前的防火墙规则
sudo iptables -L
输出示例:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
常用操作
- 添加规则
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 删除规则
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
- 保存规则
在CentOS/RHEL系统上
sudo service iptables save
在Debian/Ubuntu系统上
sudo iptables-save > /etc/iptables/rules.v4
7.2 ufw
ufw
(uncomplicated firewall)是一个简化的防火墙工具,基于iptables
,旨在简化防火墙管理。它主要用于Debian和Ubuntu系统。
基本用法
- 启用
ufw
sudo ufw enable
- 禁用
ufw
sudo ufw disable
- 查看状态
sudo ufw status
输出示例:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
常用操作
- 允许端口
sudo ufw allow 22/tcp
- 禁止端口
sudo ufw deny 22/tcp
- 删除规则
sudo ufw delete allow 22/tcp
7.3 fail2ban
fail2ban
是一种防护软件,用于保护服务器免受暴力破解攻击。它会监控日志文件,并根据特定规则自动禁止可疑IP地址。
- 安装
在Debian/Ubuntu系统上安装fail2ban
sudo apt-get install fail2ban
- 配置
编辑fail2ban
配置文件:
sudo nano /etc/fail2ban/jail.local
添加如下配置:
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
- 启动
fail2ban
sudo systemctl start fail2ban
- 查看
fail2ban
状态
sudo fail2ban-client status
输出示例:
Status
|- Number of jail: 1
`- Jail list: sshd
8、高级网络命令
8.1 ethtool
ethtool
命令用于查询和更改以太网设备的设置,适用于硬件调试和性能优化。
基本用法
- 查看网络接口设置
sudo ethtool eth0
输出示例:
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
常用操作
- 修改速度和双工模式
sudo ethtool -s eth0 speed 1000 duplex full autoneg on
- 查看驱动信息
sudo ethtool -i eth0
8.2 nmap
nmap
(network mapper)是一款开源的网络扫描和安全审核工具,用于发现网络中的设备和服务。
- 安装
在Debian/Ubuntu系统上安装nmap
sudo apt-get install nmap
- 基本用法
扫描单个主机
nmap example.com
输出示例:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-07-08 10:00 UTC
Nmap scan report for example.com (93.184.216.34)
Host is up (0.010s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
常用选项
- 扫描特定端口
nmap -p 22,80,443 example.com
- 扫描网络段
nmap 192.168.100.0/24
- 扫描操作系统和服务版本
nmap -A example.com
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)