一、网络状态查看
查看 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 查看所有监听端口及对应进程:
-tTCP,-uUDP,-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 |
| 放行 SSH | iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
| 禁止 IP | iptables -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 |
| 放行 IP | ufw 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从外部验证暴露情况。