linux ip地址 与路由

静态设置ip

vi /etc/network/interfaces  ubuntu

 

1. 以DHCP方式配置网卡

编辑配置文件/etc/network/interfaces,修改相应网卡的配置:

auto eth0
iface eth0 inet dhcp
2. 为网卡配置静态IP地址

auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0
#network 192.168.3.0
#broadcast 192.168.3.255

 

 

 

 

有关于centos7获取IP地址的方法主要有两种,1:动态获取ip;2:设置静态IP地址

在配置网络之前我们先要知道centos的网卡名称是什么,centos7不再使用ifconfig命令,可通过命令 IP addr查看,如图,网卡名为ens32,是没有IP地址的

1、动态获取ip(前提是你的路由器已经开启了DHCP)

修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens32    (最后一个为网卡名称)

动态获取IP地址需要修改两处地方即可

(1)bootproto=dhcp

(2)onboot=yes

 

systemctl restart network

 

 

2、配置静态IP地址

设置静态IP地址与动态iIP差不多,也是要修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens32    (最后一个为网卡名称)

(1)bootproto=static

(2)onboot=yes

(3)在最后加上几行,IP地址、子网掩码、网关、dns服务器

 

IPADDR=192.168.1.160
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=119.29.29.29
DNS2=8.8.8.8








参考:

 

 

 

 获取mac地址:

cat  /sys/class/net/enso/address 

 

 

 

net-tools  iproute2 比较

 

 

一、ip addr命令
我是使用的linux系统是redhat7.3,其它linux的相关操作大同小异(在这里不做赘述)

1.查看

(1). ip addr 的缩写是ip a ,可以查看网卡的ip、mac等,

即使网卡处于down状态,也能显示出网卡状态,但是ifconfig查看就看不到。

(2).ip addr show device 查看指定网卡的信息

比如查看网卡接口的信息,就是ip addr show eth0


2.增加ip

ip addr add ip/netmask dev 接口

比如给eth0增加一个172.25.21.1/24 地址

ip addr add 172.25.21.1/24 dev eth0

3.删除ip

ip addr del ip/netmask dev 接口

4.清空指定网卡的所有ip

ip addr flush dev 接口

5. 给网卡起别名,起别名相当于给网卡多绑定了一个ip

用法: 比如给网卡eth0增加别名

ip addr add 172.25.21.1/32 dev eth0 label eth0:1

6.删除别名

ip addr del ip/netmask dev eth0

注意:

使用命令的方式设置别名,重启服务就没了,若要永久生效

需要写配置文件,步骤如下:

1、确保NetworkManager服务是停止的

systemctl stop NetworkManager 关闭该服务

systemctl disable NetworkManager 开机不自启动

注意:

使用命令的方式增加或者删除ip,都是临时的,

如果重启network服务,那么操作就失效了。

想要永久生效可以修改配置文件ifcfg-eth0

二、ip link 命令
1.查看

ip link只能看链路层的状态,看不到ip地址

2.启用、禁用接口

ip link set device down 禁用指定接口

ip link set device up 启用指定接口

比如禁用eth0就是ip link set eth0 down

说明:

ip link不支持tab键补齐

 

 

 

如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。

作为网络配置工具的一份子,iproute2的出现旨在从功能上取代net-tools。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。抛开性能而言,iproute2的用户接口比net-tools显得更加直观。比如,各种网络资源(如link、IP地址、路由和隧道等)均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象。更重要的是,到目前为止,iproute2仍处在持续开发中。

如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。

对于那些想要转到使用iproute2的用户,有必要了解下面有关net-tools和iproute2的众多对比。

 

显示所有已连接的网络接口

下面的命令显示出所有可用网络接口的列表(无论接口是否激活)。

使用net-tools:

  1. $ ifconfig -a

使用iproute2:

  1. $ ip link show

激活或停用网络接口

使用这些命令来激活或停用某个指定的网络接口。

使用net-tools:

  1. $ sudo ifconfig eth1 up
  2. $ sudo ifconfig eth1 down

使用iproute2:

  1. $ sudo ip link set down eth1
  2. $ sudo ip link set up eth1

为网络接口分配IPv4地址

使用这些命令配置网络接口的IPv4地址。

使用net-tools:

  1. $ sudo ifconfig eth1 10.0.0.1/24

使用iproute2:

  1. $ sudo ip addr add 10.0.0.1/24 dev eth1

值得注意的是,可以使用iproute2给同一个接口分配多个IP地址,ifconfig则无法这么做。使用ifconfig的变通方案是使用IP别名

  1. $ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
  2. $ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
  3. $ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1

移除网络接口的IPv4地址

就IP地址的移除而言,除了给接口分配全0地址外,net-tools没有提供任何合适的方法来移除网络接口的IPv4地址。相反,iproute2则能很好地完全。

使用net-tools:

  1. $ sudo ifconfig eth1 0

使用iproute2:

  1. $ sudo ip addr del 10.0.0.1/24 dev eth1

显示网络接口的IPv4地址

按照如下操作可查看某个指定网络接口的IPv4地址。

使用net-tools:

  1. $ ifconfig eth1

使用iproute2:

  1. $ ip addr show dev eth1

同样,如果接口分配了多个IP地址,iproute2会显示出所有地址,而net-tools只能显示一个IP地址。

 

 

为网络接口分配IPv6地址

使用这些命令为网络接口添加IPv6地址。net-tools和iproute2都允许用户为一个接口添加多个IPv6地址。

使用net-tools:

  1. $ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
  2. $ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64

使用iproute2:

  1. $ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
  2. $ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1

显示网络接口的IPv6地址

按照如下操作可显示某个指定网络接口的IPv6地址。net-tools和iproute2都可以显示出所有已分配的IPv6地址。

使用net-tools:

  1. $ ifconfig eth1

使用iproute2:

  1. $ ip -6 addr show dev eth1

移除网络设备的IPv6地址

使用这些命令可移除接口中不必要的IPv6地址。

使用net-tools:

  1. $ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64

使用iproute2:

  1. $ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1

改变网络接口的MAC地址

使用下面的命令可篡改网络接口的MAC地址,请注意在更改MAC地址前,需要停用接口。

使用net-tools:

  1. $ sudo ifconfig eth1 hw ether 08:00:27:75:2a:66

使用iproute2:

  1. $ sudo ip link set dev eth1 address 08:00:27:75:2a:67

查看IP路由表

net-tools中有两个选择来显示内核的IP路由表:route和netstat。在iproute2中,使用命令ip route。

使用net-tools:

  1. $ route -n

  1. $ netstat -rn

使用iproute2:

  1. $ ip route show

 

 

添加和修改默认路由

这里的命令用来添加或修改内核IP路由表中的默认路由规则。请注意在net-tools中可通过添加新的默认路由、删除旧的默认路由来实现修改默认路由。在iproute2使用ip route命令来代替。

使用net-tools:

  1. $ sudo route add default gw 192.168.1.2 eth0
  2. $ sudo route del default gw 192.168.1.1 eth0

使用iproute2:

  1. $ sudo ip route add default via 192.168.1.2 dev eth0
  2. $ sudo ip route replace default via 192.168.1.2 dev eth0

添加和移除静态路由

使用下面命令添加或移除一个静态路由。

使用net-tools:

  1. $ sudo route add -net 172.16.32.0/24 gw 192.168.1.1 dev eth0
  2. $ sudo route del -net 172.16.32.0/24

使用iproute2:

  1. $ sudo ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0
  2. $ sudo ip route del 172.16.32.0/24

查看套接字统计信息

这里的命令用来查看套接字统计信息(比如活跃或监听状态的TCP/UDP套接字)。

使用net-tools:

  1. $ netstat
  2. $ netstat -l

使用iproute2:

  1. $ ss
  2. $ ss -l

 

 

查看ARP表

使用这些命令显示内核的ARP表。

使用net-tools:

  1. $ arp -an

使用iproute2:

  1. $ ip neigh

 

 

添加或删除静态ARP项

按照如下操作在本地ARP表中添加或删除一个静态ARP项

使用net-tools:

  1. $ sudo arp -s 192.168.1.100 00:0c:29:c0:5a:ef
  2. $ sudo arp -d 192.168.1.100

使用iproute2:

  1. $ sudo ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0
  2. $ sudo ip neigh del 192.168.1.100 dev eth0

添加、删除或查看多播地址

使用下面的命令配置或查看网络接口上的多播地址。

使用net-tools:

  1. $ sudo ipmaddr add 33:44:00:00:00:01 dev eth0
  2. $ sudo ipmaddr del 33:44:00:00:00:01 dev eth0
  3. $ ipmaddr show dev eth0
  4. $ netstat -g

使用iproute2:

  1. $ sudo ip maddr add 33:44:00:00:00:01 dev eth0
  2. $ sudo ip maddr del 33:44:00:00:00:01 dev eth0
  3. $ ip maddr list dev eth0

 

 

 

 

 ip route add default via 192.168.1.2 dev eth0

ip addr add 10.0.0.1/24 dev eth1

ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1

 

 

 

 虚拟网卡与物理网卡:

 

查看全部网卡

目录 /sys/class/net/

[root@localhost ~]# ls /sys/class/net/
br-df65b94a220f docker0 enp0s31f6 lo veth1706661 veth2566f96 veth7c083c7 vethd4a4beb vethfa8ecf9 vethfd44a20 wlp1s0


查看虚拟网卡

目录 /sys/devices/virtual/net/

[root@localhost ~]# ls /sys/devices/virtual/net/
br-df65b94a220f docker0 lo veth1706661 veth2566f96 veth7c083c7 vethd4a4beb vethfa8ecf9 vethfd44a20


查看物理网卡

[root@localhost ~]# ls /sys/class/net/ | grep -v "`ls /sys/devices/virtual/net/`"
enp0s31f6
wlp1s0


 

路由:

来自:https://blog.csdn.net/weixin_38045214/article/details/120127711

1、查看路由
ip route
1
route -n
1

 

 

1、第一条为默认路由(一种特殊的静态路由)Flags为UG,下一跳192.168.116.1
2、第二条为直连路由
3、第三条为主机路由
4、第四条为手动配置的静态路由
5、Destination:目的ip
5、Gateway:下一跳网关
5、Genmask:掩码
6、Flags:路由类型
7:Metric:管理距离,数值越小优先级越高

 

2、添加默认路由(一种特殊的静态路由),下一跳192.168.116.1,metric 为1

 

ip route add default via 192.168.116.1 metric 1
1
等价于

ip route add 0.0.0.0/0 via 192.168.116.1 metric 1
1
3、添加静态路由 192.168.208.0 网段的流量下一跳 192.168.116.1 metric 1
ip route add 192.168.208.0/24 proto static via 192.168.116.1 metric 1
1
4、添加直连路由,出接口ip为192.168.116.108
配置网口时会自动生成直连路由,一般情况不需要手动配置
1
ip route add 192.168.116.0/24 proto kernel src 192.168.116.108
1
5、添加主机路由,出接口ip为192.168.116.108,网卡名为eth0
linux一般不需要配置主机路由
1
ip route add 192.168.116.108/32 dev eth0
1
6、删除默认路由
ip route del default
1
7、清空路由表
ip route flush all
1
8、修改路由 192.168.116.0/24 网段的下一跳为 192.168.117.97
ip route replace 192.168.116.0/24 via 192.168.117.97
1
9、多链路负载均衡 192.168.208.0/24 网段通过下一跳网关 192.168.116.1和192.168.117.1 形成负载均衡,metric 为 2
可以把负载均衡的看成一条路由,通过 weigh t指定下一跳的权重。
配置 weigh t需要根据出接口的速率来配置比例。
此时 route-n 命令是看不全的,通过 ip route 命令查看路由表。
1
2
3
ip route add 192.168.208.0/24 metric 2 nexthop via 192.168.116.1 weight 1 nexthop via 192.168.117.1 weight 2
1
10、通过具体 ip 192.168.208.88 查看路由包从哪来
ip route get 192.168.208.88
1
11、报错:Network is unreachable
1、下一跳不可达,检查是否能ping通下一跳网关
2、检查是否有直连路由

 https://www.cnblogs.com/wanpengcoder/p/3595313.html

1.动态路由/静态路由

动态路由

路由选择器自动共享路由信息

自动构造路由表,需要一个路由协议,如RIP或OSPF

静态路由

路由选择器不共享路由信息(单方向路由)

手工构造路由表

2.直连路由/网关路由(间接路由)

其区别在于,发往直连路由的设备中不但具有指明目的端的I P地址,还具有其mac地址。

当报文被发往一个间接路由时,I P地址指明的是最终的目的地,但是mac地址指明的是网关(即下一跳路由器)。

 

3.主机路由/网络路由

直连路由和网关路由是由下一跳区分的,而主机路由和网络路由是由目的地址的完整度区分的;

主机路由的目的地址是一个完整的主机地址。网络路由目的地址是一个网络地址(主机号部分为0)。

当为某个目的I P地址搜索路由表时,主机地址项必须与目的地址完全匹配,

而网络地址项只需要匹配目的地址的网络号和子网号就可以了。

理解上述两组路由概念间的区别是很重要。


4.默认路由(缺省路由)

这个路由将匹配所有的包. 能帮助减少路由条目

配置一条默认静态路由和静态路由相似,但IP地址和子网掩码全部是零

例如:ip route 0.0.0.0 0.0.0.0 [网关ip或接口]

子网掩码 0.0.0.0 代表匹配所有网络

 

 

 对于一个给定的路由器,可以打印出五种不同的标志( f l a g):
U 该路由可以使用;
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的;
H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该
标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网
络号与子网号的组合;
D 该路由是由重定向报文创建的;
M 该路由已被重定向报文修改;

 

 

 

 

 

 网卡 down

ifup devname

ifconfig devname up

ifconfig devname down

 

 

不使用 ifup  ifdown 就用ip

ip link set devname up 

ip link set devname down 

ip route add default via 192.168.16.2

 

参考:

https://www.cnblogs.com/yhongji/p/9336247.html

https://linux.cn/article-4326-1.html

https://blog.csdn.net/whatday/article/details/106054064

 https://blog.csdn.net/weixin_38045214/article/details/120127711

posted @   redrobot  阅读(1414)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示