Administrator
Published on 2022-04-19 / 426 Visits
0

linux的网卡/IP相关配置知识

网卡

一台服务器可能有多个物理网口,对应多个网卡,我们可以通过配置不同网卡对应的IP地址来实现一台服务器有多个IP地址。

配置网口

修改动态/静态网络地址参数教程:
https://blog.csdn.net/sjhuangx/article/details/79618865

查看服务器的具体IP地址情况

查询命令

ip addr

或者

ip a

解析

16503334661.png

1.如图所示,通过命令查询出来的信息如图,其中2,3,4对应服务器存在的三个物理网口。
2.查看2(enp2s0),可以看到有三个inet(IPV4)和一个inet6(IPV6),说明此网卡分配了共4个IP地址,此时在其他主机ping这四个IP地址一般都是可以通的。
3.查看3(enp4s0)和4(enp4s1),可以看到里面没有inet或者inet6信息,说明此网卡对应的网口没有插网线,或者此网口处于关闭状态。
4.其他信息详解(查看是否有插入网线等)
https://blog.csdn.net/qq_44713502/article/details/117106763

路由

添加路由

route add -net 192.168.83.0 netmask 255.255.255.0 gw 172.40.1.1

其中gw 172.40.1.1对应的是要在本服务器上有配置(存在)对应的网口的网关,不然会提示 SIOCADDRT: 网络不可达 。

这样配置重启电脑/重启网卡(service network restart),会失效。

添加路由失效解决

方法一

在/etc/rc.local最后面添加:
route add -net 192.168.83.0 netmask 255.255.255.0 gw 172.40.1.1

注意,这样只能应付重启电脑,不能应付重启网卡。

参考

简单易懂的Linux路由详解(看这一篇就足够了)
https://blog.csdn.net/weixin_43522969/article/details/106138988
linux怎么添加默认路由,重启机器也能生效
https://wenwen.sogou.com/z/q824541693.htm?fr=wap&_t=367493&rcer=
linux 重启网络服务后路由表丢失问题的解决方案
https://www.iteye.com/blog/yjy110-2205338

重启网卡时错误

处理方案1

问题

我们有时候修改/etc/sysconfig/network-scripts里的网卡配置时,然后systemctl restart network,会发现错误如下:
16505043021.png
RTNETLINK answers: File exists
network.service: control process exited, code=exited status=1
Failed to start LSB: Bring up/down networking.

判断

处理方法是检查配置文件,出现这种情况是存在两个配置,内容如图:
ifcfg-eno1:
16505044111.png
ifcfg-有线连接_1:
16505044851.png
然后再通过ip a查看网卡mac信息:
16505133191.png
可以看到,两个配置对应mac地址相同,可能就是这样原因导致的。

处理

删除ifcfg-有线连接_1文件,然后systemctl restart network即可。

额外情况

16505052701.png
这个两个的mac地址也一样,但是好像是特殊情况,所以不影响。

处理方案2

https://www.jianshu.com/p/9a543b86fea5

利用ethtool查看网线连接状态,网卡速率,全双工还是半双工

命令

ethtool eno1

其实eno1可以通过ip a命令查出来,为具体的网卡名称。

具体

网线可通的网卡:
16505079381.png
网线不可通的网卡:
16505080151.png

Link detected为yes代表插的网线通,no代表不通。

Duplex为Full代表全双工,Half代表半双工。

Advertised auto-negotiation为yes代表自协商,no代表不自协商。

注意

有些服务器的电口(对应的还有光口)的速率是固定的,比如1000Mbps,然后服务器不支持降速,这时候你插入一根100Mbps的网线也是不通的,Link detected的状态也是no的。

利用ethtool查看网卡名称对应的是哪个物理网口

命令

ethtool -p em1

其实em1可以通过ip a命令查出来,为具体的网卡名称。

说明

设备号em1对应的物理端口的两个指示灯会闪烁,说明就找到对应的物理网口的。
有些服务器不支持会提示Cannot identify NIC: Operation not supported。

利用ethtool修改网络端口速率,双工模式,自协商

命令

ethtool -s em1 speed 1000 duplex full autoneg off

其实em1可以通过ip a命令查出来,为具体的网卡名称。

说明

这个命令多用于手工设置网络速率,一般千兆网卡支持10|100|1000三个速率,单位是Mbps。
此行命令实现的效果是将设备号em1对应的物理端口设置为速率为1000Mbps,全双工工作模式,同时关闭自动协商。

注意

概念科普

双全工和半双工

全双工是指在发送数据的同时也能够接收数据,两者同步进行,就好像我们打手机,大家都可以说话,收和发可以同时进行。半双工就是发和收不能同时,像对讲机那样,要么你说,要么听别人说,所谓半双工就是指一个时间段内只有一个动作发生。

自协商

自协商是指以太网之间对接时端口速率、双工模式的协商,比如A 设备可以支持10/100/1000M速率,可以支持半双工/全双工,但是B设备只支持100M半双工,那么两个设备对接的时候,A设备就会用协商到B设备的配置,然后给自己一个和B 设备相同的配置,两台设备之间就可以通信了。
也就是说,开启自协商,设置的网络速率和全双工/半双工的工作模式就会无效。