网络配置
ip
是 iproute2 软件包中的网络配置工具,可以配置路由、网络设备、策略路由和隧道等
ip [ OPTIONS ] OBJECT { COMMAND | help }
# 常用对象 OBJECT={ link | addr | addrlabel | route | rule }
# -V 软件版本
# -s 输出详细信息
# -f 强制使用指定协议族
# -4 指定使用 IPv4 协议
# -6 指定使用 IPv6 协议
# -r 使用主机的域名代替 IP 地址输出
ip link show # 显示网络接口信息
ip link set enp0s8 up # 启用 enp0s8 网卡
ip link set enp0s8 promisc on # 开启网卡的混合模式
ip link set enp0s8 mtu 1400 # 设置网卡最大传输单元
ip -s link list # 查看网卡详细信息
ip addr show # 显示网卡地址
ip addr add 192.168.1.1/24 dev enp0s8 # 设置网卡 enp0s8 地址
ip addr del 192.168.1.1/24 dev enp0s8 # 删除网卡 enp0s8 地址
ip route show # 显示系统路由,同 ip route list
ip route add default via 192.168.1.254 # 设置默认路由
ip route add 192.168.1.100 dev enp0s8 # 添加静态路由,指定出接口
ip route add 192.168.2.0/24 via 192.168.1.2 metric 10 # 添加静态路由,指定下一跳地址
ip route del default # 删除默认路由
ip route del 192.168.1.0/24 # 删除静态路由
网卡配置文件
CentOS 的配置文件通常在 /etc/sysconfig/network-scripts/
目录下
TYPE=Ethernet # 接口类型
PROXY_METHOD=none # 获取地址方式,none (静态配置)、dhcp (动态获取)
BROWSER_ONLY=no # 是否仅在启动时尝试获取 IP 地址
BOOTPROTO=none # 引导协议, none、dhcp、bootp、static
DEFROUTE=yes # 是否添加默认路由到路由表
IPV4_FAILURE_FATAL=no # 如果 IPv4 配置失败是否停止启动
NAME=enp0s3 # 网卡名称
UUID=746f3ff2-0407-4f8d-be5c-17ebce43907c # 唯一标识码
DEVICE=enp0s3 # 接口名称
ONBOOT=yes # 启动时是否激活网络接口
IPADDR=192.168.56.101 # 网络地址
PREFIX=24 # 子网掩码位数
GATEWAY=192.168.56.1 # 默认网关地址
Debian 的网卡配置文件通常位于 /etc/network/interfaces
中
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug enp0s3
auto enp0s3 # 开机自动激活
iface enp0s3 inet static # 静态配置
address 192.168.56.100 # 网络地址
netmask 255.255.255.0 # 子网掩码
gateway 192.168.56.1 # 网关
常见网络配置工具
ifconfig、nmcli、nmtui、netplan、networkctl
网络诊断工具
ping
用于测试主机之间网络连通性
ping [options] <destination>
ping 127.0.0.1
# -c 设置发包次数
# -v 显示详细信息
# -s 设置数据包大小
# -t 设置 TTL 值
netstat
显示端口连接状态
netstat [options]
# -a 显示所有内容
# -l 显示监听中的状态
# -u 显示 udp 连接
# -t 显示 tcp 连接
# -n 不显示别名
# -p 显示进程
# -r 显示路由表
# -s 显示统计表
# -c 动态显示
ss
同 netstat
一样,显示连接状态信息
ss [options]
# -a 显示所有内容
# -l 显示监听中的状态
# -u 显示 udp 连接
# -t 显示 tcp 连接
# -n 不显示别名
# -p 显示进程
# dst address 匹配目的地址
# src address 匹配源地址
lsof
用于查看系统端口情况
lsof [options]
# -i 指定端口号
# -c 显示进程正在打开的文件
# -p 指定进程号
# +d / 显示/目录下被开启的文件
# +D 递归所有文件
nslookup
用于查询域名服务器信息
nslookup [address]
nslookup www.bing.com
last
查看登录记录
last [options]
# -a 将 IP 地址显示在最后一列
# -d 将 IP 解析成域名
# -f 指定文件
# -R 不显示 IP 地址
# -x 显示关机、重启、执行等级变更等信息
lastlog
查看用户最近一次登录信息
lastlog [options]
# -b 指定天数前的登录信息
# -t 指定天数以来的登录信息
# -u 指定用户最近的登录信息
tracerouter
跟踪数据包访问目标的路径
traceroute 127.0.0.1
# -P 指定端口号
# -s 指定源地址
地址解析配置文件
/etc/hostname
文件用于配置主机名,也可以通过 hostnamectl
来修改主机名,主机名修改后需要重启系统才能生效
# CentOS
hostnamectl set-hostmane example
# Debian
hostnamectl hostname example
/etc/host.conf
文件定义主机名到 IP 地址的映射关系,或者用于控制主机名解析的策略
multi on # 允许主机名可以对应多个 IP 地址
order hosts,bind # 指定主机名解析的顺序: 本地解析、DNS 解析
nospoof on # 防止对本地网络上的主机名进行 DNS 欺骗
/etc/hosts
文件用于定义静态的主机名到 IP 地址的映射
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
# IP 地址 域名1 域名2 ...
/etc/resolv.conf
文件用于定义 DNS 解析
nameserver 8.8.8.8 # 指定 DNS 服务器地址
domain example.com # 设置默认搜索域。当访问 www 时,系统会自动尝试解析 www.example.com
search example.com # 定义搜索列表。如果查询失败,将尝试添加 example.com 后缀进行解析
sortlist 192.168.1.0/255.255.255.0 192.168.2.1 # 对返回地址进行排序。如果查询返回的地址在192.168.1.0/24的范围内,这些地址将会被优先使用,其次用 192.168.2.1