目录
前言
在使用 Linux 的过程中,网络设置是非常重要的一环,如果想要服务器正常运行的话,就需要把网络配置好,优化好。而怎样才能更好的配置和优化网络呢?下面我将介绍一下网络设置中的一些基本操作。
一、查看网络配置
1.查看网络接口信息
-
查看所有活动的网络接口信息
-
查看指定网络接口信息
第一行:
UP:代表此网络接口为启用状态(down为关闭状态)
RUNNING:代表网卡设备已连接
MULTICAST:表示支持组播
MTU:为数据包最大传输单元
第二行:
inet ip地址
netmask 子网掩码
broadcast 广播地址
第三行:IPv6地址
第四行:
Ethernet(以太网)表示连接类型;
ether:表示为网卡的MAC地址
第五行:接受数据包个数、大小统计信息
第六行:异常接受包的个数、如丢包量、错误等
第七行:发送数据包个数、大小统计信息
第八行:发送包的个数、如丢包量、错误等
- 显示所有活动及非活动的连接
2.设置网络接口参数
- ifconfig 命令不仅可以用于查看网卡配置,还可以修改网卡的 IP 地址、子网掩码,也可以绑定虚拟网络接口、激活或禁用网络接口。
ifconfig ens37 192.168.191.140 netmask 255.255.255.0 //临时配置网卡的ip地址
ifconfig ens37 192.168.191.140/24 //当不指定子网掩码时,将使用 IP 地址所在分类的默认子网掩码
- 启用、禁用网络接口配置
ifconfig ens37 down|up 或
ifup/ifdown ens37
ifdown ens33 && ifup ens33
//关闭并开启
如果只是禁用、启用某一个网络接口(而不是所有接口),可分别使用两个接口控制脚本 ifdown、ifup
- 为网卡绑定虚拟接口
ifconfig ens33:0 192.168.191.141
在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 IP 地址,但是又不能覆盖原有 IP 地址而导致服务程序不可用。
这时可以为网卡绑定一个虚拟的网络接口,然后为虚拟接口设置新的 IP 地址(相当于一块网卡配多个 IP 地址)。
二、查看主机名称 hostname
- 查看主机名
[root@localhost ~]# hostname
localhost.localdomain
- 临时修改主机名为cow
hostname cow
- 永久修改主机名
hostnamectl set-hostname cow
或者
vim /etc/hostname
三、查看路由表条目 route
- 直接执行 route 命令可以查看当前主机中的路由表信息。
Destination 列对应目标网段的地址
Gateway 列对应下一跳路由器的地址
Iface 列对应发送数据的网络接口
当目标网段为“default”时,表示此行是默认网关记录。
当下一跳为“gateway”时,表示目标网段是与本机直接相连的。 - 使用-n可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
- 添加、删除静态路由记录
route 命令不仅可以用于查看路由表信息,还可用来添加、删除静态的路由表条目,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)
例:
添加静态路由,通过“route add”操作可以添加路由记录,结合“-net”选项指定目标网段的地址,结合“gw”选项指定下一跳路由器的IP 地址。
route add -net 192.168.3.0/24 gw 192.168.10.1 //表示可以通过192.168.10.1到192.168.3.0/24网络
- 添加、删除默认网关记录
需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障。
添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用“default”表示即可。
route add default gw 192.168.10.1
route del default gw 192.168.10.1
四、查看网络连接情况netstat
- 查看系统的网络连接状态、路由表、接口统计等信息
常用选项:
-n 以数字的形式显示相关的主机地址、端口等信息
-r 显示路由表信息
-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l 显示处于监听(Listenin状态的网络连接及端口信息。
-t 查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。
-u 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。
-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限
通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息。
配合管道符grep过滤出特定的记录。
[root@localhost ~]#netstat -antp |grep "80"
tcp6 0 0 :::80 :::* LISTEN 21721/httpd
五、获取socket统计信息ss
- ss命令查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。
常用选项:
-h help 通过该选项获取更多的使用帮助。
-V version 显示软件的版本号。
-t tcp 显示 TCP 协议的 sockets。
-u udp 显示 UDP 协议的 sockets。
-n numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”。
-l listening 只显示处于监听状态的端口。
-p processes 显示监听端口的进程。
-a all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接。
-r resolve 把 IP 解释为域名,把端口号解释为协议名称。
[root@localhost ~]#ss -o state 'established' | grep ssh
tcp 0 36 192.168.191.144:ssh 192.168.191.1:55058 timer:(on,186ms,0)
//-o选项可用于显示计时器信息。该信息向我们展示了诸如重新传输计时器值、已经发生的重新传输的数量以及已发送的keepalive探测的数量
[root@localhost ~]#ss -t state established
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 36 192.168.191.144:ssh 192.168.191.1:55058
//established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, closed-wait, last-ack监听和关闭等状态
[root@localhost ~]#ss -tnl sport le 500
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::22 :::*
六、跟踪数据包 traceroute
- 测试从当前主机到目的主机之间经过的网络节点
[root@localhost ~]#traceroute 192.168.191.146
traceroute to 192.168.191.146 (192.168.191.146), 30 hops max, 60 byte packets
1 192.168.191.146 (192.168.191.146) 1.510 ms 1.377 ms 1.278 ms
//traceroute 命令能够比 ping 命令更加准确地定位网络连接的故障点(中断点),因此执行速度会比 ping 命令稍慢。
//在网络测试与排错过程中,通常会先使用 ping 命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用 traceroute 命令跟踪查看是在哪个中 间结点存在故障。
七、域名解析 nslookup
- 测试DNS域名解析
nslookup 目标主机地址 [DNS服务器地址]
例:
[root@localhost ~]#nslookup www.google.com
Server: 192.168.24.2 //所使用的 DNS 服务器
Address: 192.168.24.2#53
Non-authoritative answer: //下面是 DNS 解析的反馈结果
Name: www.google.com
Address: 66.220.155.14
八、域名解析配置文件
- /etc/resolv.conf保存本机需要使用的DNS服务器的IP地址
[root@localhost~]# vim/etc/resolv.conf
search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1
1./etc/resolv.conf 文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。
2.Linux系统中最多可以指定3个(第3个以后的将被忽略)不同的 DNS 服务器地址,优先使用第1个 DNS服务器。
3.resolv.conf 文件中的 “search localdomain” 行用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。
- 本地主机映射文件
/etc/hosts 文件中记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询。
例:
在 /etc/hosts 文件中添加 “119.75.218.70 www.baidu.com” 的映射记录,则当访问网站 www.baidu.com 时,将会直接向IP地址 119.75.218.70 发送 Web 请求,省略了向 DNS 服务器解析 IP 地址的过程。
[root@localhost~]#cat /etc/hosts
127 .0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
......
119.75.218.70 www.baidu.com
总结
- 查看网络配置,主机名,路由表条目以及网络连接情况
-ifconfig、hostname、route、netstat、ss - 测试网络连接
-ping、traceroute、nslookup