网络配置
→ 返回 Linux
查看网络状态
# 接口信息
ip addr # 所有网卡及 IP(推荐)
ip addr show eth0 # 指定网卡
ifconfig # 旧命令(需安装 net-tools)
# 路由表
ip route
route -n # 旧命令
# 端口 / 连接
ss -tlnp # 监听的 TCP 端口及进程(推荐)
ss -tulnp # TCP + UDP
netstat -tlnp # 旧命令(需安装 net-tools)
lsof -i :8080 # 查看占用指定端口的进程ss -tlnp 字段说明:
| 字段 | 说明 |
|---|---|
| State | LISTEN / ESTABLISHED |
| Local Address | 本地监听地址:端口 |
| Peer Address | 对端地址 |
| Process | 进程名及 PID |
ip 命令速查
# 地址管理
ip addr add 192.168.1.100/24 dev eth0 # 临时添加 IP
ip addr del 192.168.1.100/24 dev eth0 # 删除 IP
# 接口启停
ip link set eth0 up
ip link set eth0 down
# 路由管理
ip route add default via 192.168.1.1 # 添加默认网关
ip route add 10.0.0.0/8 via 192.168.1.254 # 添加静态路由
ip route del 10.0.0.0/8 # 删除路由静态 IP 配置
Ubuntu(Netplan)
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
dhcp4: falsenetplan applyCentOS / RHEL(nmcli)
# 设置静态 IP
nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0DNS 配置
# 临时修改(重启失效)
echo "nameserver 8.8.8.8" > /etc/resolv.conf
# 查看 DNS 解析
cat /etc/resolv.conf
resolvectl status # systemd-resolved
# 测试解析
nslookup example.com
dig example.com
dig @8.8.8.8 example.com # 指定 DNS 服务器网络诊断
# 连通性
ping -c 4 8.8.8.8
# 路由追踪
traceroute 8.8.8.8
mtr 8.8.8.8 # 动态追踪(需安装)
# 抓包
tcpdump -i eth0 port 80
tcpdump -i any host 192.168.1.1 -w capture.pcap # 保存到文件
tcpdump -r capture.pcap # 读取文件
# HTTP 测试
curl -v http://example.com
curl -o /dev/null -w "%{http_code} %{time_total}s\n" http://example.com
wget -O /dev/null http://example.com防火墙
firewalld(CentOS / RHEL)
systemctl start firewalld
firewall-cmd --state
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-allufw(Ubuntu)
ufw enable
ufw allow 22/tcp
ufw allow 80/tcp
ufw deny 3306/tcp
ufw status verboseiptables
iptables -L -n -v # 查看规则
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP # 默认拒绝
# 保存规则(CentOS)
service iptables saveSSH 配置
# 客户端连接
ssh user@192.168.1.100
ssh -p 2222 user@host # 指定端口
ssh -i ~/.ssh/id_rsa user@host # 指定密钥
# 生成密钥对
ssh-keygen -t ed25519 -C "comment"
# 推送公钥到服务器
ssh-copy-id user@host服务端配置 /etc/ssh/sshd_config:
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
systemctl restart sshd