查看网络配置
ifconfig——查看网络接口信息
基本用法:
格式 | 含义 |
---|---|
ifconfig | 显示当前主机中已启用(活动)的网络接口信息。 |
ifconfig -a | 显示所有网络接口(包括没有启动的网卡) |
ifconfig 具体网卡名称 | 只显示具体网卡的详细信息(无论是否启用) |
ifconfig 网卡名称 up/down | 表示开启或关闭指定网卡 |
ifconfig 网络接口 IP地址[/子网掩码长度] | 新建临时IP地址(添加一块虚拟网卡) |
ifconfig -s | 查看通讯情况 |
配置网络参数之主机名
1)查看主机名称
[root@localhost ~]# hostname
localhost.localdomain
2)临时修改主机名称
[root@localhost ~]# hostname lp
[root@localhost ~]# su
[root@yuji ~]# hostname
lp
3)永久修改主机名称,修改后重启生效:
- 法一:编辑配置文件/etc/hostname,该文件只对第一行生效。
- 法二:使用 “hostnamectl set-hostname 新主机名” 命令,该命令实际是修改了配置文件
route——查看路由表条目
route -n //以数字形式显示路由信息
route add -net 网段地址 gw IP地址 //添加指定网段的路由记录
route del -net 网段地址 //删除指定网段的路由记录
route add default gw IP地址 //向路由表中添加默认网关记录
route del default gw IP地址 //删除路由表中默认的网关记录
netstat——查看网络连接情况
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
常用选项
选项 | 作用 |
---|---|
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。 |
-n | 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。 |
-t | 查看TCP协议相关的信息。 |
-u | 显示UDP协议相关的信息。 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |
-r | 显示路由表信息。 |
-l | 显示处于监听状态(Listen)的网络连接及端口信息。 |
常用搭配:
netstat -a //列出所有端口
netstat -at //列出所有TCP端口
netstat -au //列出所有UDP端口
netstat -ax //列出所有unix端口
netstat -lt //列出处于监听状态的TCP端口
netstat -tnlp //直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名
示例:
1)netstat -lt,列出处于监听状态的TCP端口。
[root@localhost ~]# netstat -lt //列出处于监听状态的TCP端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 localhost.locald:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:shell 0.0.0.0:* LISTEN
tcp6 0 0 [::]:sunrpc [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:ipp [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:shell [::]:* LISTEN
复制代码
2)netstat -tnlp,直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名。
[root@localhost ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1462/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1113/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1111/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1394/master
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 798/rsyslogd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1113/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1111/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1394/master
tcp6 0 0 :::514 :::* LISTEN 798/rsyslogd
测试网络连接
ping——测试网络连通性
linux中,默认会一直ping下去, 按Ctrl+c 终止。
常用选项:
选项 | 说明 |
---|---|
-w | 超时时间(在 deadline 秒后退出) |
-c count | 指定发送报文的次数(ping指定次数后停止ping) |
-i | 指定收发信息的间隔时间 |
-s | 设置数据包的大小 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
traceroute——跟踪数据包
测试从当前主机到目的主机之间经过的网络节点。
traceroute 目标主机地址
复制代码
示例:
[root@localhost ~]# traceroute 192.168.72.20
traceroute to 192.168.72.20 (192.168.72.20), 30 hops max, 60 byte packets
1 yuji (192.168.72.20) 0.034 ms 0.007 ms 0.004 ms
nslookup——域名解析
测试DNS域名解析
nslookup 目标主机地址 [DNS服务器地址]
复制代码
示例:
[root@localhost ~]# nslookup www.baidu.com //将域名解析为IP地址
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 36.152.44.96
Name: www.a.shifen.com
Address: 36.152.44.95
dig——域名解析
dig可以显示出更多详细信息。
dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。
[root@localhost ~]# dig www.baidu.com //将域名解析为IP地址,显示更多信息
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27104
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 208 IN CNAME www.a.shifen.com.
www.a.shifen.com. 214 IN A 36.152.44.95
www.a.shifen.com. 214 IN A 36.152.44.96
;; Query time: 10 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 三 3月 16 01:56:42 CST 2022
;; MSG SIZE rcvd: 101
ss——查看网络连接情况
ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。
但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。
选项 | 含义 |
---|---|
-t | tcp协议相关 |
-u | udp协议相关 |
-w | 套接字相关 |
-x | unix sock相关 |
-l | listen状态的连接 |
-a | 所有 |
-n | 数字格式 |
-p | 相关的程序及PID |
-e | 扩展的信息 |
-m | 内存用量 |
-o | 计时器信息 |
-r | --resolve 把 IP 解释为域名,把端口号解释为协议名称 |
示例:
查看TCP协议下的21端口是否开启
[root@localhost ~]# ss -ntap |grep 21 //查看TCP协议下的21端口
LISTEN 0 32 :::21 :::* users:(("vsftpd",pid=84913,fd=3))
tcpdump
tcpdump是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linux/Unix 中都有。
tcpdump可以从网卡或之前创建的数据包文件中读取内容,也可以将包写入文件中以供后续使用。必须是 root 用户或者使用 sudo 特权来运行tcpdump。
tcpdump -i ens33 #指定查看ens33 网卡
tcpdump -tttt -i enp0s3 #捕获带有可读时间戳的数据包
tcpdump -c 12 -i enp0s3 #指定数据包数量
tcpdump host 192.168.91.100 -i ens33#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
#特定来源、目标地址的通信
tcpdump src host hostname#特定来源
tcpdump dst host hostname#特定目标地址
tcpdump host hostname#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
[root@localhost ~]#tcpdump -i ens33 -nn icmp and src host 192.168.91.101 and dst host 192.168.91.100
#面试题
[root@localhost ~]#tcpdump ip host 192.168.91.100 and 192.168.91.101 -i ens33#只抓取 特定主机之间的数据包
tcpdump port 3000#特定端口
tcpdump portrange 22-125捕获某个端口范围的数据包
tcpdump tcp port 22 and src host 10.0.0.100 -i ens33
永久修改网络相关配置
静态NAT网络设置
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet //接口类型,常见的有Ethernet、Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static //激活此设备时使用的地址配置协议,设置成static静态
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 //此配置文件应用到的设置
UUID=bdc9ad35-297a-413f-a7f2-be27868e0e72 //设备的唯一标识
DEVICE=ens33 //设备名
ONBOOT=yes //在系统引导时是否激活此设备
#下面四行是自己添加的内容
IPADDR=192.168.72.10 //自定义的IP地址
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.72.2 //网关地址
DNS1=8.8.8.8 //DNS服务器地址
。
域名解析配置文件
/etc/resolv.conf 文件,保存本机需要使用的DNS服务器的IP地址。
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
本地主机映射文件
/etc/hosts 文件,保存主机名与IP地址的映射记录。
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
119.75.218.70 www.baidu.com
hosts 文件和DNS服务器的比较:
- 默认情况下,系统首先从hosts文件查找解析记录
- hosts 文件只对当前的主机有效
- hosts 文件可减少DNS查询过程,从而加快访问速度
多网卡绑定
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
#创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
nmcli connection modify ens33 ipv4.addresses 192.168.91.100/2
nmcli connection up ens33
#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.91.123/24
#添加从属接口
nmcli con add type bond-slave ifname ens33 master bond0
nmcli con add type bond-slave ifname ens36 master bond0
#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
#要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-ens33
nmcli con up bond-slave-ens36
#启动绑定
nmcli con up mybond0