Linux网络设置
前言
Linux网络配置是网络服务的基础,
一、查看网络配置
(1)ifconfig——查看及配置网络接口地址
- 查看所有的网络接口信息ifconfig
- 查看指定网络接口信息
- mtu:代表最大传输单元,它的单位是字节。在我们常用的以太网中,MTU一般是1500,而无线路由器默认一般是 1492。
- 本地MTU值 > 网络MTU值 → 拆包,效率下降
- 本地MTU值 < 网络MTU值 → 未发挥最大传输能力
- 本地MTU值 < 网络MTU值 → 理想的本地MTU值
- inet:表示网络接口的IP地址
- netmask:表示网络接口的子网掩码
- broadcast:表示网络接口所在网络的广播地址
- ether:表示网络接口的物理地址(MAC地址)
- RX:接受数据包个数、大小统计信息
- RX:异常接受包的个数、如丢包量、错误等
- TX:发送数据包个数、大小统计信息
- TX:发送包的个数、如丢包量、错误等
lo
“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”,子网掩码为8位,回环地址通常仅用于对本机的网络测试
用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道
virbr0
一个虚拟的网络连接端口,默认为0号虚拟网络连接端口;一般在通过虚拟机进行移植操作系统时,默认会以nat的网络地址转移,但是可以选择桥接或者是无网络连接也是可以的
- 配置网络的参数
1.临时配置:使用命令调整网络参数
简单、快速,可直接修改运行中的网络参数
一般只适合在调试网络的过程中使用
系统重启以后,所做的修改将会失效
2.固定设置:通过配置文件修改网络参数
修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
需要重载网络服务或者重启以后才会生效
- 添加一块网卡
ip a 查看网络接口号
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ./ ifcfg-ens38 #将ens33网卡文件拷贝一份到当前目录,修改参数
vim ifcfg-ens38
systemctl restart network #重启一下网卡就可以用了
-
添加临时网卡
格式:ifconfig [网络接口]:1 [ip地址]
-
临时修改网卡ip,重启后恢复
格式:ifconfig [网络接口] [ip地址] netmask [子网掩码]
ifconfig [网络接口] [ip地址]/[掩码长度]
ifdown [网络接口] #关闭指定网卡
ifup [网络接口] #启动指定网卡
ifconfig [网路接口] down #临时禁用指定网卡
ifconfig [网络接口] up #重新激活指定网卡(不会更新ip)
(2)rouote——查看及配置路由条目
route命令 可以查看当前主机中的路由表信息,在输出结果中Destination列对应了目标网段的地址,Gateway列对应下一跳路由地址,Iface列对应了发送数据的网络接口
route #查看路由条目
route -n #可以将路由记录中的地址显示为数字形式
ip route show=ip route #查看路由配置
-
添加指定网段的路由记录
格式:route add -net [网络地址] gw [ip地址]
-
删除指定网段的路由记录
格式:route del -net [网络地址]
-
添加默认网关记录
格式:route add default gw [ip地址]
-
删除默认网关记录
格式:route del default gw [ip地址]
(3)hostnome——查看主机名称
hostname #查看当前主机名称
hostnamectl set-hostname [主机名称] #永久修改主机名称
vim /etc/hostname #设置完需重启系统才能生效
hostname [主机名] #临时修改
- 将原有名字注释,在第一行添加新名字保存后重启
(4)netstat——查看网络连接情况
格式:netstat [选项]
选项 | 作用 |
---|---|
-a | 显示当前主机中所有活动的网络连接信息 |
-n | 以数字的形式显示相关的主机地址、端口等信息 |
-r | 显示路由表信息 |
-l | 显示处于监听状态的网络连接及端口信息 |
-t | 查看TCP协议相关的信息 |
-u | 显示UDP协议相关的信息 |
-p | 显示与网络连接相关联的进程号、进程名称信息(需要root权限) |
用法:①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息
②配合管道符grep过滤出特定的记录
(5)ss和lsof——获取socket统计信息
格式:
ss [选项] #查看系统的网络连情况,获取socket统计信息
lsof [选项] #查看打开服务进程的端口(TCP、UDP)
选项 | 作用 |
---|---|
-t | tcp显示TCP协议的sockets |
-u | udp显示 UDP协议的sockets |
-n | numeric不解析服务的名称,如“22”端口不会显示成“ssh” |
-l | listening只显示处于监听状态的端口 |
-p | processes显示监听端口的进程(Ubuntu 上需要sudo) |
-a | all对TCP协议来说,既包含监听的端口,也包含建立的连接 |
-r | resolve把IP解释为域名,把端口号解释为协议名称 |
ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装
netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以现在ss往往是我们的优先选择
二、测试网络连通性
(1)ping命令——测试网络连通性
命令:ping [选项] 目标主机
- “Destination Host Unreacheble”表示目的主机不可达
- “Netwokr is unreacheable”表示没有可用的路由记录
- “Request timeout”的反馈结果,表示与目的主机连接超时
(2)traceroute命令——跟踪数据路径
命令:traceroute [目标主机]
traceroute命令能比ping命令更加准确的定位网络连接的故障点(中断点),执行命令也会比ping稍慢一点
在网络测试与排错过程中,通常会先试用ping命令测试与目的主机的网络连接,再使用traceroute命令跟踪查看故障在哪个中间节点
(3)nslookup命令——测试DNS域名解析
命令:nslookup [目标域名地址]
dig [目标域名地址]
/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做的修改将会立刻生效。
resolv.conf 文件中的“search localdomain”行用来设置默认的搜索域(域名扩展名)。例如,当访问主机"locaThost"时,就相当干访问"localhost.localdomain”一行一个DNS,最多配置三个DNS
Linux操作系统中最多可以指定3个(第3个以后的将被忽略)不同的DNS 服务器地址,优先使用第一个 DNS服务器。
(4)本地主机映射文件
- 文件位置:/etc/hosts
- hosts文件和DNS服务器的比较
- /etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询
- 因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络
- 对于经常访问的一些网站,可以通过在/etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能导致网站访问出现异常
总结
- 查看网络配置命令(ifconfig、route、hostname、netstat、ss、lsof)
- 添加、删除、关闭、开启、禁用网卡
- 测试网络连通性(ping、traceroute、nslookup)
- 本机映射文件及设置映射地址