一、网络状态查看

查看 IP 与网卡信息

ip addr(或 ip a)查看所有网络接口的 IP 地址、MAC 地址、状态(UP/DOWN)。

  • 重点字段:inet(IPv4 地址)、inet6(IPv6 地址)、state UP(网卡启用)
  • 常见接口名:lo(本地回环)、eth0/enp0s3(物理网卡)、wlan0(无线网卡)

查看路由与网关

ip route(或 ip r)查看路由表,确定数据包该往哪送。

  • 关键行:default via 192.168.1.1 dev eth0 —— 默认网关
  • 查看特定目标的路由:ip route get 8.8.8.8

查看端口监听与连接

ss -tulnp 查看所有监听端口及对应进程:

  • -t TCP,-u UDP,-l 仅监听,-n 数字显示,-p 显示进程(需 root 看全)
  • 示例:ss -tulnp | grep :80 查看谁占了 80 端口

检测连通性

ping 目标IP 发送 ICMP 包检查目标是否可达。-c n 指定发送次数。


补充:NetworkManager 命令行工具

对于使用 NetworkManager 管理网络的系统,以下命令用于控制网络连接而非查看网络状态:

  • nmtui:文本界面网络管理工具,通过图形化菜单配置网络。
  • nmcli:命令行网络管理工具。常用操作:nmcli device status 查看设备状态,nmcli connection up/down 连接名 启用/停用连接。

说明nmtui/nmcli 属于网络管理工具(控制“网怎么连”),而非网络查看工具(看“网是什么状态”),两者定位不同。


二、网络请求与数据传输

发送 HTTP 请求与下载

curl [选项] URL 是最通用的网络请求工具。

操作命令说明
获取页面内容curl http://example.com默认输出到终端
保存为远程文件名curl -O http://example.com/file.txt保存为 file.txt
保存为指定文件名curl -o newname.txt http://example.com/file.txt
跟随重定向curl -L http://example.com自动跟踪 3xx 跳转
查看响应头curl -I http://example.com仅返回 HTTP 头
发送请求头curl -H "User-Agent: xxx" http://example.com
发送 JSON 数据curl -X POST -H "Content-Type: application/json" -d '{"key":"val"}' http://example.com/api
调试模式curl -v http://example.com显示请求/响应全过程

wget 更适合纯粹的文件下载(非交互式、支持断点续传)。-b 后台下载,日志写入 wget-log

跨机器文件传输

scp 本地文件 用户@远程IP:远程路径:基于 SSH 加密传输,无需额外配置。

rsync -avz 本地路径 用户@远程IP:远程路径:增量同步工具,支持断点续传和排除规则。


三、防火墙与访问控制

防火墙的本质是包过滤——根据规则决定放行、丢弃还是拒绝。

底层框架:iptables / nftables

iptables 是 Linux 内核包过滤框架的前端工具,核心模型为 四表五链

  • 表(Table):按功能分组。主要表:filter(过滤)、nat(网络地址转换)、mangle(包修改)。
  • 链(Chain):数据包流经的检查点。主要链:INPUT(入站)、OUTPUT(出站)、FORWARD(转发)。
  • 规则按顺序匹配,匹配即执行,不再继续。

常用操作(需 root):

操作命令
查看规则iptables -L -n -v
放行 SSHiptables -A INPUT -p tcp --dport 22 -j ACCEPT
禁止 IPiptables -A INPUT -s 192.168.1.100 -j DROP
删除规则iptables -D INPUT 3(删除第 3 条)
清空规则iptables -F(谨慎!建议先放行 SSH)

持久化:iptables 规则重启即失。需导出保存 iptables-save > /etc/iptables.rules,并在启动时恢复 iptables-restore < /etc/iptables.rules(具体机制因发行版而异)。

nftables 是 iptables 的继任者,语法更统一(合并 IPv4/IPv6)。现代发行版逐步切换,iptables 命令可能通过兼容层调用 nftables。

上层工具:ufw

ufw(Uncomplicated Firewall)是 iptables 的简化前端,语法友好。

操作命令
启用/禁用ufw enable / ufw disable
查看状态ufw status verbose
放行端口ufw allow 22 / ufw allow 22/tcp
放行服务ufw allow ssh
拒绝端口ufw deny 25
放行 IPufw allow from 192.168.1.0/24
放行 IP+端口ufw allow from 192.168.1.10 to any port 22
删除规则ufw delete allow 22

上层工具:firewalld

firewalld 是 RHEL 系的动态防火墙工具,引入 区域(zone) 概念,不同网络接口绑定不同安全级别。

操作命令
查看状态firewall-cmd --state
查看默认区域firewall-cmd --get-default-zone
放行端口(永久)firewall-cmd --add-port=80/tcp --permanent
放行服务(永久)firewall-cmd --add-service=http --permanent
重新加载firewall-cmd --reload
查看所有规则firewall-cmd --list-all

--permanent 表示持久生效,不加则仅当前运行时有效。


补充概念

  • REJECT vs DROP:REJECT 返回不可达信息,客户端立即得知被拒;DROP 静默丢弃,客户端超时——后者更“隐身”,适合防御扫描。
  • 常用端口:22(SSH)、80(HTTP)、443(HTTPS)、53(DNS)、3306(MySQL)。
  • 安全原则:最小开放原则——只开放必要的端口,其他一律 DROP。配置后可用 nmap localhost 从外部验证暴露情况。