Linux 网络配置

腾讯云改网卡名

以centos为例,分两步

  1. 禁用云初始化:添加如下内容到 /etc/cloud/cloud.cfg
network:
  config:
    disabled: true
  1. 修改改名文件:/etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:7e:a8:6c", NAME="eth0"

把其中的 NAME 值改为需要的值。

改名后网络地址需要手动配置

ifconfig eth0 172.16.16.14 netmask 255.255.240.0 
route add default gw 172.16.16.1

NetworkConfiguration

online doc

Red Hat 11. Network Interfaces
debian wiki NetworkConfiguration
modify net interface

system type: /etc/os-release

网卡信息路径

You can list interfaces with: ls /sys/class/net

contos NetworkInterfaceNames

生成改名规则的脚本文件: usr/sbin/nic_init.sh
调用改名规则的脚本文件:/usr/lib/systemd/system/nic.service call /usr/hardwares/bin/nic_init.sh

网口配置

配置文件位置

在一个计算机系统中,可以有多个网络接口,分别对应多个网络接口配置文件,

  1. centos 在/etc/sysconfig/network-scripts/目录下,
  2. 旧版ubuntu是 /etc/network/interfaces 下面,新版在 /etc/netplan/
    依次编号的文件是ifcfg-eth0,ifcfg-eth1,...,ifcfg-eth

HWADDR

“HWADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备du的硬件地址.在有多个网卡设备的机器上,这个字段是非常有用的,它保证设备接口被分配了正确的设备名,
而不考虑每个网卡模块被配置的加载顺序.这个字段不能和MACADDR一起使用.”
“就能知道HWADDR和MACADDR的不同之处了,前者是用来根据HWADDR绑定ethX名称的,后者才是真正用来修改MAC地址的”

netstat

netstat -nr命令会显示路由表的内容
网关为0.0.0.0的网络通常是直连到网络设备上的。因为到自己的直连设备上是不需要网关的,所以0.0.0.0的网关地址是正常的。目的地址是0.0.0.0的路由是你的缺省网关。

route

route -n 查看路由表
以下面的分析为例:
默认网关为:172.16.200.1
所在子网为:172.16.200.0

[root@VM-200-100-centos ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.200.1    0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
172.16.200.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

netstat -nr 的Flags:代表的意义如下:

o U (route is up):该路由是启动的;
o H (target is a host):目标是一部主机 (IP) 而非网域;
o G (use gateway):需要透过外部的主机 (gateway) 来转递封包;
o R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;
o D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
o M (modified from routing daemon or redirect):路由已经被修改了;
o ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)

保存网卡ip信息

#!/bin/bash

net_interface="ge0"

for i in $(seq 5 -1 1)
do
        var=`ifconfig $net_interface|grep "inet\>"|awk '{print $2}'`
        if [ -n $var ]; then
                echo "get ip:$var";break
        fi
        echo -en "$i";sleep 1
done

ip_pattern="[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
ip_cfg=/etc/sinfor/cloud_ip.ini
cat /dev/null >$ip_cfg
set -x
net_arr=`ls /sys/class/net`
net_arr=(${net_arr[@]/lo})
net_arr=(${net_arr[@]/vpntun})
for net in ${net_arr[@]}
do
        ether=`ifconfig $net|grep "ether\>"|awk  '{ print $2 }'`
        rwini -f $ip_cfg -s $net -k mac -v $ether -w
        ip=`ifconfig $net|grep "inet\>"|awk  '{ print $2 }'`
        rwini -f $ip_cfg -s $net -k ip -v $ip -w
        net_mask=`ifconfig $net|grep "inet\>"|awk  '{ print $4 }'`
        rwini -f $ip_cfg -s $net -k net_mask -v $net_mask -w
        gateway=`curl -s http://metadata.tencentyun.com/2017-09-19/meta-data/network/interfaces/macs/$ether/local-ipv4s/$ip/gateway |grep $ip_pattern`
        rwini -f $ip_cfg -s $net -k gateway -v $gateway -w
done

udev_dhcp

#!/bin/bash


#rename net interface
net_arr=`ls /sys/class/net`
net_arr=(${net_arr[@]/lo})
net_arr=(${net_arr[@]/vpntun})
for net in ${net_arr[@]}
do
        ifconfig $net down
        udevadm test -a add /sys/class/net/$net 2>/var/udeverr.log 1>/var/udevstd.log
done

# obtain ip by dhcp
dhclient -v

ifconfig  ge0
ifconfig  ge1

bash /usr/sbin/saveipinfo.sh

route add default gw 172.17.2.1

posted on 2021-02-03 00:36  ims-  阅读(271)  评论(0编辑  收藏  举报

导航