ip 命令(现代)vs ifconfig(旧)
新系统都用 ip。ifconfig 在新发行版可能要装 net-tools 才有。
# 看所有接口 IP
ip addr # 简写 ip a
ip -br addr # 简洁版
# 看路由表
ip route # 简写 ip r
# 看连接状态
ip link # 简写 ip l
常用查询
# 看自己的 IP
ip -br addr
# lo UNKNOWN 127.0.0.1/8 ::1/128
# eth0 UP 192.168.1.100/24
# 看默认网关
ip route | grep default
# default via 192.168.1.1 dev eth0
# 看 DNS(由 systemd-resolved 管理时)
resolvectl status
# 或老式:
cat /etc/resolv.conf
临时改 IP(重启失效)
sudo ip addr add 192.168.1.200/24 dev eth0
sudo ip addr del 192.168.1.200/24 dev eth0
sudo ip route add default via 192.168.1.1
sudo ip link set eth0 down # 关接口
sudo ip link set eth0 up # 开接口
永久改 IP
不同发行版方式不同。
Ubuntu Server(netplan)
/etc/netplan/00-installer-config.yaml:
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 8.8.8.8]
应用:
sudo netplan apply
RHEL / CentOS / Rocky(NetworkManager)
nmcli con show
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 "223.5.5.5,8.8.8.8"
nmcli con mod "eth0" ipv4.method manual
nmcli con up "eth0"
或直接编辑 /etc/sysconfig/network-scripts/ifcfg-eth0。
DNS 配置
# 立即测试某 DNS
dig @8.8.8.8 example.com
# 当前用的 DNS
resolvectl status # systemd-resolved
cat /etc/resolv.conf # 兼容老用法
国内常用 DNS:
| 服务 | IPv4 | 备注 |
|---|---|---|
| 阿里 | 223.5.5.5 / 223.6.6.6 | 国内速度快 |
| DNSPod(腾讯) | 119.29.29.29 / 182.254.116.116 | 国内 |
| 114DNS | 114.114.114.114 | 国内老牌 |
| 8.8.8.8 / 8.8.4.4 | 海外 | |
| Cloudflare | 1.1.1.1 / 1.0.0.1 | 海外 |
hosts 文件:本地强制解析
/etc/hosts:
127.0.0.1 localhost
192.168.1.50 db.local
192.168.1.51 redis.local
# 临时屏蔽
0.0.0.0 bad-site.com
hosts 优先于 DNS——开发 / 调试时强制把某域名指到某 IP 极有用。
检查网络栈
# 看本机所有 TCP 监听端口
sudo ss -tlnp
# 看建立的连接
sudo ss -tnp
# 看 UDP
sudo ss -ulnp
# 看 socket 总数
ss -s
下一篇:网络出问题怎么诊断。