目录
本文作者:bandaoyu,随时更新,最新内容请到原文地址:https://blog.csdn.net/bandaoyu/article/details/116308950
linux网口配置IP
1、查看接口信息
#启动网络管理器
[root@localhost ~]# NetworkManager start
#查看连接
[root@localhost ~]# service network resatrt [root@localhost ~]# nmcli conn show
可以看到网口中接线的是ens2f0
网口名就是ens2f0 UUID 就是 ff888acf-86ae-3132-927c-6b47656c58c3
(有时候service network resatrt 执行后需要等一会,不然nmcli connection show检查出的已连线连接不全)
(上面方法并不保险,最保险的是ethtool ethx 一个一个试,ethtool ethx之前需要NetworkManager start,conn show 并不显示没有对应ifcfg-xxx文件的端口,所有可以用ip addr 显示所有端口)
可以用ethtool 命令确认连线状况:
[root@rdma61 sysconfig]# ethtool ens2f0
Settings for eth18-0:
Supported ports: [ Backplane ]
……
link
Link detected: yes
Link detected: yes 表示连线
如果NetworkManager 是一次启动,从其打印的内容也可以得知哪个网口连接网线:
2、配置IP
方法1:
- 执行下面命令,生成配置文件
[root@localhost ~]# nmcli conn add ifname ens2f0 con-name ens2f0 type ethernet
INAME=ens2f0 &&nmcli conn add ifname ${INAME} con-name ${INAME} type ethernet
ifname:接口名 con-name:连接配置名
以上命令添加配置文件的缺点是有时候不生成HWADDR ,这样的话设备重启,端口名称可能会改变。
nmcli命令说明见: https://www.cnblogs.com/libertylife/p/10497512.html
- 修改配置文件
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens2f0
TYPE=EthernetBOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens2f0
UUID=5f1fde10-d2a2-4ea5-8213-7cdb53bb59bf
DEVICE=ens2f0ONBOOT=yes
HWADDR=00:0c:29:4d:bb:5dIPADDR=192.168.1.101
PREFIX=24 #=mask 255.255.255.0
GATEWAY=192.168.1.254 #根据需要配置
说明:
BOOTPROTO=static 静态地址
修改设备名
DEVICE=ens2f0 自动生成
添加IP、掩码、网关
IPADDR=192.168.1.101
PREFIX=24 #=mask 255.255.255.0
GATEWAY=192.168.1.254
原文链接:https://blog.csdn.net/qq_36783142/article/details/75353944
方法2:
直接创建和编辑文件(建设查到的网口名是ens2f0 )
vim /etc/sysconfig/network-scripts/ifcfg-ens2f0
将下面的内容按网口实际信息修改(注意确认,不要漏改)
改NAME、UUID、DEVICE、IPADDR
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=noBOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacyNAME=ens2f0UUID= ff888acf-86ae-3132-927c-6b47656c58c3
DEVICE=ens2f0
ONBOOT=yes
IPADDR=182.200.31.55
PREFIX=24
GATEWAY=192.168.1.254 #根据需要配置
自动化:
MYIFNAME=ens7f2;
MYIPADDR=192.168.31.60;
MYGATEWAY=182.200.31.251;
MYHWADDR=$(ifconfig|grep ${MYIFNAME} -A 5|grep ether|awk '{print $2}');
#modify line
sed -i "s/^BOOTPROTO.*\+=.*/BOOTPROTO=static/" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "s/^ONBOOT.*\+=.*/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#delete line
sed -i '/IPADDR/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i '/PREFIX/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i '/GATEWAY/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#add line
sed -i "/ONBOOT/a\IPADDR=${MYIPADDR}" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "/IPADDR/a\PREFIX=24" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "/PREFIX/a\GATEWAY=${MYGATEWAY}" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "/GATEWAY/a\HWADDR=${MYHWADDR}" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#show
cat /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#end
3、重启网络服务确认ip配置结果
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
或
[root@localhost ~]# ip -a
配置RDMA网卡
1、查看device的命令:
# ibv_devices
device node GUID
------ ----------------
rdmap175s0f0 40a6b70b6f300000
rdmap175s0f1 40a6b70b6f310000
————————————————
2、查看RDMA device和linux网口的对应关系
Mellanox:
ibdev2netdev
因特尔
ibv_devices|awk '{system("echo "$1"\"-->\"`ls /sys/class/infiniband/"$1"/device/net`")}' |& grep -v '/device/net' 或 ibv_devices|awk '{system("echo "$1"\"-->\"`ls /sys/class/infiniband/"$1"/device/net`")}' |
rocep24s0f3-->ens2f3
rocep24s0f1-->ens2f1
rocep24s0f0-->ens2f0
rocep24s0f2-->ens2f2
3、查看连接线的接口
#启动网络管理器
[root@localhost ~]# NetworkManager start
#查看连接[root@localhost ~]# nmcli connection show
找到连线的接口。
使用ethtool 逐个检查上面打出的端口,看到Link detected: yes,就是这个端口是连着网线的,就可以对这个网口配置IP。
ethtool ens2f3
ethtool ens2f1
……
[root@localhost ~]# ethtool ens3f1
Settings for ens3f1:
Supported ports: [ FIBRE ]
……
Current message level: 0x00000007 (7)
drv probe link Link detected: yes
配置IP
剩下配置IP的过程同上面的:linux网口配置IP
重启网卡
ifdown ens2f0
ifup ens2f0
5、确认RDMA功能
查看官方说明,使用官方的测试工具测试。
查看哪个网口连线方法
方法1:(保险的方法)
1. 查看连接状态:ip link
2.让eth0网口闪烁:ethtool eth0
把所有的都试一遍就知道了
3.如果能拔网线,拔一下再插上,/var/log/messages日志里能看到
方法2:(适合没有配置过IP的机器)
#启动网络管理器
[root@localhost ~]# NetworkManager start
#查看连接
[root@localhost ~]# service network resatrt [root@localhost ~]# nmcli connection show
ens、eno、enp网口的区别
扩展知识内容:
- en标识ethernet
- o:主板板载网卡,集成是的设备索引号
- p:独立网卡,PCI网卡
- s:热插拔网卡,USB之类的扩展槽索引号
- nnn(数字):MAC地址+主板信息计算得出唯一序列
-
eno1:代表由主板bios内置的网卡
-
ens1:代表有主板bios内置的PCI-E网卡
-
enp2s0: PCI-E独立网卡
-
eth0:如果以上都不使用,则回到默认的网卡名
错误记录
service network restart 失败
systemctl status network.service 查看
1、ens2f0 和ens5f0 中的device 名字冲突,原因是下面的命令 ifname 和con-name 不一致
nmcli connection add ifname ens2f0 con-name ens5f0 type ethernet
类似错误还有用方法2配置IP时,UUID忘记改,造成冲突
报错:Failed to restart network.service: Unit network.service not found.
1、可以尝试使用以下命令:
service network-manager restart
2、如果是 Kali Linux(Debian),则需要用以下命令:
service networking restart
3、如果是Centos 8,则需要用以下命令:
1.重启网卡之前一定要重新载入一下配置文件,不然不能立即生效
1 |
|
2.重启网卡(下面的三条命令都可以):
1 2 3 |
|
总结:重启centos8的网卡,先载入新的配置文件,然后在执行重启网卡命令即可。
以上其实是下面的缩写:
nmcli connection reload
启动 nmcli connection down ens33
停止 nmcli connection up ens33
CentOS 8系统网卡启动命令_爱辉弟的博客-CSDN博客_centos8重启网络服务命令
配置没有问题,但是死活ping不通
案例:
用ethtool 查看 ens3f0 和ens3f1 都是Link detected: yes,所以配置了 ens3f0 的IP,但是始终无法和其他主机通信。改配置 ens3f1就好了。
原因暂时不明。
网关设置错误可以导致连接不上
ens7f0
DEVICE=ens7f0
IPADDR=172.17.31.55
PREFIX=24
GATEWAY=182.200.31.251
ethA3d-0
DEVICE="ethA3d-0"
IPADDR=182.200.31.55
PREFIX=24
GATEWAY=182.200.31.251
IP是172.17.31.55,我给它设置网关:182.200.31.251。 导致SSH 连接不上ethA3d-0 :182.200.31.55
RTNETLINK answers: File exists
网友:
原因1
检查发现起了 NetworkManager:
#chkconfig --list|grep -i manager
NetworkManager 0:off 1:ff 2:on 3:on 4:on 5:on 6:off
关闭NetworkManager即可:
#chkconfig NetworkManager off
#service NetworkManager stop
#service network restart
关闭NetworkManager:之后我的问题仍然没有解决,我直接重启,重启后正常。
ping不通排查
- ping本机是否畅通
这个可以看出本机网卡驱动是否正常,协议是否安装完全。本机可以ip,也可以127.0.0.1来ping。若通就表示网卡驱动是正常的。可以不用重装网卡驱动。
- 接线是否正常
是否接在了对应的口上。用下面的命令查看ethxx口上是否接上了线
NetworkManager start
ethtool ethxx
- 防火墙
- selinux
输入 getenforce 查看是否是enforce ,如果是,可能会被限制。
- 是否是存在别的配置网口配置文件用同样的IP
例如:
ifcfg-ens3f1 配置了192.168.31.57 配置全部正确,但是就是不通。
进入cd /etc/sysconfig/network-scripts/,发现ifcfg-ens3f0里面的IP 也是192.168.31.57
输入mii-tool可以查看网线是否连接到网卡
#mii-tool
- eth0: negotiated 100baseTx-FD, link ok
有时驱动可能不支持会出错下列错误
#mii-tool
- SIOCGMIIPHY on 'eth0' failed: Operation not supported
- no MII interfaces found
显示所有网络连接:nmcli con show
显示活动网络连接:nmcli con show -active
显示指定网络连接的详情:nmcli con show eno16777728
显示网络设备连接状态:nmcli dev status
显示所有网络设备的详情:nmcli dev show
显示指定网络设备的详情:nmcli dev show eno16777728
启用网络连接:nmcli con up eno16777728
停用网络连接(可被自动激活):nmcli con down eno33554960
禁用网卡,防止被自动激活:nmcli dev dis eth0
删除网络连接的配置文件:nmcli con del eno33554960
重新加载配置网络配置文件:nmcli con reload
动态获取IP方式的网络连接配置:nmcli con add con-name eno16777728 type ethernet ifname eno16777728
指定静态IP方式的网络连接配置:nmcli con add con-name eno16777728 ifname eno16777728 autoconnect yes type ethernet ip4 10.1.254.254/16 gw4 10.1.0.1
启用/关闭所有的网络连接:nmcli net on/off
禁用网络设备并防止自动激活:nmcli con dis eno33554960
查看添加网络连接配置的帮助:nmcli con add help
作者:陈超同学
链接:https://www.jianshu.com/p/c333e15896f7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关脚本指令记录
脚本配置:
MYIFNAME=ens7f2;
MYIPADDR=192.168.31.55;
MYGATEWAY=182.200.31.251;
MYHWADDR=$(ifconfig|grep ${MYIFNAME} -A 5|grep ether|awk '{print $2}');
#modify line
sed -i "s/^BOOTPROTO.*\+=.*/BOOTPROTO=static/" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "s/^ONBOOT.*\+=.*/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#delete line
sed -i '/IPADDR/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i '/PREFIX/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i '/GATEWAY/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#add line
sed -i "/ONBOOT/a\IPADDR=${MYIPADDR}" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "/IPADDR/a\PREFIX=24" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "/PREFIX/a\GATEWAY=${MYGATEWAY}" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
sed -i "/GATEWAY/a\HWADDR=${MYHWADDR}" /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};
#show
cat /etc/sysconfig/network-scripts/ifcfg-${MYIFNAME};