网络功能是linux系统最大一个亮点,网络上大部分服务器是使用linux系统的,可见其网络功能的强大。
要将linux接入网络,最基本的就是要配置IP,子网掩码mask,DNS服务器等基本参数,其主要配置方式有两种,一种为静态指定,一种为动态获取。
静态指定:
配置IP: ifconfig命令
命令格式: ifconfig [interface]
ifconfig -a 显示所有网络接口地址相关信息
ifconfig IFACE [up|down] 启用或关闭指定网卡接口
例:ifconfig eth0 up 启用eth0
ifconfig IFACE IP/mask [up] 指定接口IP及掩码并启动此接口
ifconfig IFACE IP netmask MASK 作用与上个命令相同
例:ifconfig eth0 192.168.1.100/16 或者
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
[-]promisc 禁用混杂模式,不加- 表示启用
混杂模式表示不是发给自己的报文自己也会保留一份,而不是丢弃,主要用来抓包分析 用的
配置路由:route命令
route -n 查看路由,加上-n选项表示不显示反解
route add 添加路由
[-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 添加路由的命令格式
-net :添加网络路由
-host:添加主机路由
例子:
添加主机路由: 目标主机:172.16.249.8 网关:192.168.1.1
route add -host 172.16.249.8 gw 192.168.1.1 dev eth0
显示结果如下
添加网络
目标网络:172.16.0.0 网关:192.168.1.1 以下两种方法均可
route add -net 172.16.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
route add -net 172.16.0.0/24 gw 192.168.1.1 dev eth0
默认路由,网关:172.16.0.1 两种方式均可
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
删除:route del
route del -host IP :删除主机路由
route del -net IP netmask MASK :删除网络路由
DNS服务器指定
编辑配置文件/etc/resolv.conf 在 nameserver后面加入DNS的IP地址即可,可以设置三个DNS服务器
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
本机的配置文件显示如下: 本机仅设置了两个DNS服务器
netstat命令:网络状态查看
显示网络连接的相关的连接
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
显示路由表:
netstat
-r: 显示内核路由表
-n: 数字格式
-v :显示详细信息
显示接口统计数据:
netstat -i 显示所有接口统计数据
netstat -I IFACE 显示指定接口的统计数据 I与IFACE之间无空格
ifup: 启用网络接口
ifdown:关闭网络接口
IP命令:
ip link set 设置链接状况
up 启用链接
down 关闭链接
ip link show 显示当前所有网络接口的相关信息
ip link show dev eth0 显示eth0接口的相关
ip addr 协议地址管理工具
ip address show 显示所有协议地址的信息
ip addr add IPADDR dev IFACE 给指定的接口添加ip地址
如:ip addr add 192.168.1.11/24 dev eth0 给eth0接口添加ip 192.168.1.11
ip addr del IPADDR dev IFACE 删除指定接口的IP地址
如:ip addr del 192.168.1.11/24 dev eth0 删除eth0上的ip地址192.168.1.11
ip address flush :清除原有的IP地址
ip route 路由管理工具
ip route add 添加路由
如:主机路由:ip route add 172.16.0.5 via 192.168.1.1 dev eth0 添加到达172.16.0.5主机需要的路由为192.168.1.1
网络路由: ip route add 172.16.0.0/16 via 192.168.1.1 dev eth0 添加到达172.16.0.0网络需要的路由为192.168.1.1
默认路由:ip route add default via 192.168.1.1 添加192.168.1.1为默认路由
ip route delete 删除路由
如:ip route delete 172.16.0.5 删除到达172.16.0.5主机的路由
ip route show 显示路由信息
ip route flush 清除原有路由信息
ss命令:网络状态查看工具
格式:ss [OPTION]... [FILTER]
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
修改配置文件更改网络配置信息:
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
此配置文件内容如下
各个字段的含义如下:
DEVICE:此配置文件应用到的设备;
HWADDR:对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
当BOOTPROTO为static时,需要指定以下信息
IPADDR:指明IP地址;
NETMASK:子网掩码;
GATEWAY: 默认网关;
DNS1:第一个DNS服务器指向;
DNS2:第二个DNS服务器指向;
路由配置文件为/etc/sysconfig/network-scripts/route-IFACE
配置内容有两种风格
第一种风格: TARGET via GW 即为 目标 网关 网关地址
例如: 172.16.0.0 via 192.168.1.1 到达172.16.0.0这个网络需要经由192.168.1.1
第二种风格:
每三行定义一条路由
ADDRESS#=TARGET 目标
NETMASK#=mask 掩码
GATEWAY#=GW 网关地址
例如:
ADDRESS0=172.16.0.0 // 目标
NETMASK0=255.255.0.0 // 掩码
GATEWAY0=192.168.1.1 // 网关地址
Linux网络属性配置的tui(text user interface):
使用setup即可显示一个图形界面,配置相关参数即可,重启网络服务即可生效
配置当前主机的主机名:
方法一: 使用hostname [HOSTNAME]命令即可
方法二:编辑配置文件/etc/sysconfig/network
使用 HOSTNAME= 新的主机名 即可
centos7的地址配置工具:nmcli
命令格式:nmcli [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT:
device 显示和管理网络接口
connection 启用,停止网络连接
nmcli device show IFACE:显示接口的信息
如何修改IP地址等属性:
命令格式:nmcli connection modify IFACE [+|-]setting.property value
+ 添加
- 去除
setting.property有以下几种:
(1) ipv4.addresses ipv4的地址
例子: nmcli connection modify eth0 + ipv4.addresses 192.168.1.113/24 给eth0添加一个192.168.1.113的地址
(2) ipv4.gateway ipv4的网关
例: nmcli connection modify eth0 ipv4.gateway 192.168.1.1 添加网关
(3)ipv4.dns ipv4的dns地址
例: nmcli connection modify eth0 ipv4.dns 192.168.1.1 添加dns地址
nmcli connection down eth0 禁用eth0接口
nmcli connection up eth0 启用eth0接口
网络接口配置tui工具:nmtui
nmtui :显示配置网络信息的图形工具
主机名称配置工具:hostnamectl
hostnamectl status 显示状态信息
hostnamectl set-hostname 设置主机名