如何对路由和网卡进行临时或永久配置

目录

Linux命令行使用route命令的详解

输出详解

设置路由表

使用示例:

范例讲解

WINDOWS下的route命令

处理实例

linux中一个网卡配置多个ip与命令行配置网卡(网络)

一个网卡配置多个ip

命令行配置网卡

dhclient的基本命令

linux网卡文件永久配置ip地址,路由与DNS

nmcli命令查看网卡的IP地址、网关、DNS等配置


Linux命令行使用route命令的详解

说明:route命令用于显示和操作IP路由表
要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将网关地址设置为 Linux机器的默认路由(default)。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;要想永久保存,有如下方法:

1.在/etc/rc.d/rc.local里添加
2.在/etc/sysconfig/network里添加到末尾
3./etc/sysconfig/static-router里添加:
any net x.x.x.x/24 gw y.y.y.y

格式:route
格式:/sbin/route
用于打印路由表(display the current routing table)。

在非root用户使用时需要使用完整路径执行route命令。

命令参数[root@linux ~]# route [-nee]
观察的参数:
   -n  :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
   -ee :使用更详细的资讯来显示
格式:route -n
格式:/sbin/route -n
用于打印路由表,加上-n参数就是在输出的信息中不打印主机名而直接打印ip地址。

输出详解

~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.220.125 0.0.0.0         UG    100    0        0 ens33
192.168.220.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

结果是自下而上, 就是说, 哪条在前面, 哪条就有优先, 前面都没有, 就用最后一条default

route命令输出的路由表字段含义如下:
Destination 
目标网络或目标主机(本机的数据要发送的目的地:子网或主机),与Genmask组成一个网段。

Gateway 
网关(如果是默认网关,网关的地址必须和自己的主机上的其中一块网卡在同一子网)即网关地址。如果没有就显示星号。

Genmask 
网络掩码,如果目标网络的的子网掩码为255.255.255.255,说明目标是一台主机;如果子网掩码为’0.0.0.0’ 说明该路由是默认路由。

Flags:总共有多个旗标,代表的意义如下:                        
U:表示路由是有效的(Up)。
G:表示路由是默认网关(Gateway)。
H:表示该路由是主机路由,即目标地址是具体的主机地址而不是一个网络地址(Host)。
D:表示该路由是由动态路由协议(如RIP、OSPF)自动添加的(Dynamic)。
M:表示该路由是由静态路由管理程序(如route)手动添加的(Modified)。
L:表示该路由是本地路由,即目标地址是本地主机的一个接口(Local)。
C:表示该路由是一个缓存的路由(Cache)。
!:表示该路由是不可到达的(Reject)。

Metric 距离、跳数。暂无用。与目标的“距离”(通常以跳数计算)。它不被最近的内核使用,但可能需要路由守护进程。

**Ref ** 不用管,恒为0, 对这条路线的引用次数(Linux内核已不再使用)。

Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。 路线查询次数。根据-F和-C的使用,这将是路由高速缓存丢失(-F)或命中(-C)。

Iface 接口,即eth0,eth1等网络接口名,为此路由发送数据包的接口。

设置路由表

~# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
~# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
增加 (add) 与删除 (del) 路由的相关参数:
   -net :表示后面接的路由为一个网域,对应 Destination;
   -host :表示后面接的为连接到单部主机的路由,对应 Destination;
   netmask :与网域有关,可以设定 netmask 决定网域的大小,对应 Genmask。如果 -net 不是 0.0.0.0 那么该字段是必须的;
   gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同,对应 Gateway。若不指定默认为 0.0.0.0,表示直接局域网通信,不需要路由器中转;
   dev :如果只是要指定由那一块网卡出去,则使用这个设定,后面接 eth0 等,对应 Iface。

格式:route add default gw {IP-ADDRESS} dev {INTERFACE-NAME}
用于设置默认路由,其中,
参数{IP-ADDRESS): 用于指定路由器(网关)的IP地址;
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。使用/sbin/ifconfig -a可以显示所有接口信息。
~# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.220.108  netmask 255.255.255.0  broadcast 192.168.220.255
        inet6 fe80::20c:29ff:fed1:462e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d1:46:2e  txqueuelen 1000  (Ethernet)
        RX packets 4239  bytes 322500 (314.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 733  bytes 128730 (125.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 405  bytes 32516 (31.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 405  bytes 32516 (31.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

例:route add default gw 192.168.220.2 dev ens33

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
添加到指定网络的路由规则,其中
参数{NETWORK-ADDRESS}: 用于指定网络地址
参数{NETMASK}: 用于指定子网掩码
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。
例:route add -net 192.168.220.0 netmask 255.255.255.0 dev ens33

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} reject
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
例:route add -net 10.0.0.0 netmask 255.0.0.0 reject

格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject
用于删除路由设置。参数指定的方式与route add相似。

使用示例:

 # 删除默认目标
~# route del -net 0.0.0.0  

# 添加默认目标,网关为192.168.10.1,网络接口为eth0
~# route add -net 0.0.0.0 gw 192.168.10.1 dev eth0  #相当于route add default gw 192.168.10.1 dev eth0

# 添加 192.168.10.0/255.255.255.0 目标网络的路由,无需网关(未指定gw),网络接口为eth0,该条路由是配置局域网设备的访问规则
~# route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0

# 添加指定目标地址的路由
route add -net 10.10.10.103 netmask 255.255.255.255 gw 192.168.10.1 dev eth0

#"default" 等同于 "-net 0.0.0.0",以下两者是等价的:
~# route add default gw 192.168.10.1 dev eth0
~# route add -net 0.0.0.0 gw 192.168.10.1 dev eth0
在 route del 时,只要能标定该条规则就可以。

其它注意事项:
同一个目标只能被添加一次,如下已存在 0.0.0.0,再次添加会报错

删除所有的路由表
route -n | awk 'NR>2 {printf("route del -net %s gw %s netmask %s dev %s\n",$1,$2,$3,$8)}' | sh

添加路由表时,要注意顺序。必须按如下顺序配置:
~# route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0   #无需网关(未指定gw),该条路由是配置局域网192.168.10.0网段设备间的访问规则
~# route add -net 0.0.0.0 gw 192.168.10.1 dev eth0    #配置其他网络(192.168.10.0网段外)的访问规则,需要通过网关192.168.10.1

如果上述顺序反了,会出现以下错误:
~# route add default gw 192.168.10.1 dev eth0
SIOCADDRT: Network is unreachable

因为系统不能访问到 192.168.10.1 地址上的网关(路由器)。所以,要先配置局域网内部的访问规则,再配局域网外的规则。

配置实例:给一台linux主机联网
网关ip:192.168.220.2

1.配置ip
[root@master ~]# ifconfig eth0 192.168.220.200 netmask 255.255.255.0
[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d1:46:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.200/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed1:462e/64 scope link 
       valid_lft forever preferred_lft forever

2.配置路由
[root@master ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
[root@master ~]# route add -net 192.168.220.0 netmask 255.255.255.0 dev eth0   #先配置局域网的目的网络访问规则,局域网内无需网关
[root@master ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.220.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0
[root@master ~]# route add default gw 192.168.220.2 dev eth0  #再配置默认路由,即访问其他地址的路由。访问其他地址通过网关访问(第一步已配置了到网关的路由,若第一步没有配置会提示:Network is unreachable)
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.220.2   0.0.0.0         UG    100    0        0 eth0
192.168.220.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0

3.配置DNS
ip和路由配置完成后访问www.baidu.com
[root@master ~]# ping www.baidu.com     #无法ping百度域名。因为没有配置DNS,无法解析域名
ping: www.baidu.com: Name or service not known
[root@master ~]# ping -c2 14.119.104.189   #可以ping百度的ip地址,路由没有问题
PING 14.119.104.189 (14.119.104.189) 56(84) bytes of data.
64 bytes from 14.119.104.189: icmp_seq=1 ttl=128 time=36.2 ms
64 bytes from 14.119.104.189: icmp_seq=2 ttl=128 time=35.3 ms

--- 14.119.104.189 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 35.389/35.797/36.205/0.408 ms
[root@master ~]# sed -i '$a\nameserver 114.114.114.114' /etc/resolv.conf   #/etc/resolv.conf文件内配置DNS
[root@master ~]# ping -c2 www.baidu.com
PING www.a.shifen.com (14.119.104.254) 56(84) bytes of data.
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=1 ttl=128 time=34.0 ms
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=2 ttl=128 time=34.0 ms

--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 34.036/34.060/34.084/0.024 ms

范例讲解

范例一
单纯的观察路由状态

~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         192.168.10.30   0.0.0.0         UG    0      0        0 eth0
~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         server.cluster  0.0.0.0         UG    0      0        0 eth0

##server.cluster对应ip192.168.10.30主机的host

此外,观察一下上面的路由排列顺序喔,依序是由小网域(192.168.10.0/24 是 Class C),逐渐到大网域(169.254.0.0/16 Class B) 最后则是预设路由 (0.0.0.0/0.0.0.0)。然后当我们要判断某个网路封包应该如何传送的时候,该封包会经由这个路由的过程来判断喔!举例来说,我上头仅有三个路由,若我有一个传往 192.168.10.20 的封包要传递,那首先会找 192.168.10.0/24 这个网域的路由,找到了!所以直接由 eth0 传送出去;如果是传送到 Yahoo 的主机呢? Yahoo 的主机 IP 是 202.43.195.52,我通过判断 

1)不是 192.168.10.0/24,
2)不是 169.254.0.0/16 结果到达 

3)0/0  时, OK !传出去了,透过  eth0  将封包传给  192.168.10.30 那部  gateway  主机啊!所以说,路由是有顺序的。因此当你重复设定多个同样的路由时,例如在你的主机上的两张网路卡设定为相同网域的  IP  时,会出现什么情况?会出现如下的情况:
Kernel  IP  routing  table
Destination          Gateway                  Genmask                  Flags  Metric  Ref        Use  Iface
192.168.10.0        0.0.0.0                  255.255.255.0      U          0            0                0  eth0
192.168.10.0        0.0.0.0                  255.255.255.0      U          0            0                0  eth1
也就是说,由于路由是依照顺序来排列与传送的,所以不论封包是由那个介面  (eth0, eth1)  所接收,都会由上述的  eth0  传送出去,所以,在一部主机上面设定两个相同网域的  IP  本身没有什么意义!有点多此一举就是了。除非是类似虚拟主机  (Xen, VMware  等软体 )  所架设的多主机时,才会有这个必要~

范例二
~# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
# 上面这个动作可以删除掉 169.254.0.0/16 这个网域!
# 请注意,在删除的时候,需要将路由表上面出现的资讯都写入
# 包括  netmask , dev 等等参数喔!注意注意

~# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0

# 透过 route add 来增加一个路由!请注意,这个路由必须要能够与你互通。
# 举例来说,如果我下达底下的指令就会显示错误:
~# route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254
# 因为我的环境内仅有 192.168.10.100 这个 IP ,所以不能与 192.168.200.254这个网段直接使用 MAC 互通!这样说,可以理解喔!?
~# route add default gw 192.168.10.30
# 增加预设路由的方法!请注意,只要有一个预设路由就够了喔!
# 在这个地方如果您随便设定后,记得使用底下的指令重新设定你的网路
~# /etc/init.d/network restart
如果是要进行路由的删除与增加,那就得要参考上面的例子了,其实,使用 man route 里面的资料就很丰富了!仔细查阅一下囉!你只要记得,当出『SIOCADDRT: Network is unreachable』这个错误时,肯定是由于 gw 后面接的 IP 无法直接与您的网域沟通 (Gateway 并不在你的网域内)。

实例1:
[dongm@192 ~]$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:04:ee:4b:de  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8440:121b:71a1:7316  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5e:69:35  txqueuelen 1000  (Ethernet)
        RX packets 113  bytes 15911 (15.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 126  bytes 13534 (13.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[dongm@192 ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
[dongm@192 ~]$ ping -c2 www.baidu.com
PING www.baidu.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=53 time=9.55 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=53 time=9.12 ms
 
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 862ms
rtt min/avg/max/mdev = 9.123/9.338/9.554/0.236 ms
[dongm@192 ~]$ route add default gw 192.168.1.1
SIOCADDRT: Operation not permitted
[dongm@192 ~]$ su
Password: 
[root@192 dongm]# route add default gw 192.168.1.1
SIOCADDRT: Network is unreachable
[root@192 dongm]# route add default gw 192.168.0.10
[root@192 dongm]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.10    0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@192 dongm]# ping -c2 www.baidu.com
PING www.baidu.com (180.101.49.11) 56(84) bytes of data.
From 192.168.0.101 (192.168.0.101) icmp_seq=1 Destination Host Unreachable
From 192.168.0.101 (192.168.0.101) icmp_seq=2 Destination Host Unreachable
 
--- www.baidu.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 11ms
pipe 2
 
 
 
实例2:
[root@localhost dongm]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.220.130  netmask 255.255.255.0  broadcast 192.168.220.255
        inet6 fe80::20c:29ff:fe4d:d387  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4d:d3:87  txqueuelen 1000  (Ethernet)
        RX packets 31041  bytes 34888586 (33.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13686  bytes 838794 (819.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2  bytes 204 (204.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 204 (204.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
[root@localhost dongm]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.220.2   0.0.0.0         UG    100    0        0 ens33
192.168.220.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost dongm]# ping -c2 www.baidu.com
PING www.baidu.com (36.152.44.96) 56(84) bytes of data.
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=1 ttl=128 time=19.4 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=2 ttl=128 time=45.7 ms
 
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 43ms
rtt min/avg/max/mdev = 19.406/32.552/45.698/13.146 ms
[root@localhost dongm]# route del default gw 192.168.220.2
[root@localhost dongm]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.220.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost dongm]# ping -c2 www.baidu.com
ping: www.baidu.com: Name or service not known
[root@localhost dongm]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.220.2
[root@localhost dongm]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.220.2   0.0.0.0         UG    0      0        0 ens33
192.168.220.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost dongm]# ping -c2 www.baidu.com
PING www.baidu.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=128 time=27.0 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=2 ttl=128 time=36.0 ms
 
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 48ms
rtt min/avg/max/mdev = 27.003/31.519/36.036/4.519 ms

WINDOWS下的route命令

简单的的操作如下:

查看路由状态:route PRINT

只查看ipv4(ipv6)路由状态:route print -4(-6)

C:\Users\11111>route print -4
===========================================================================
接口列表
  9...00 ff 2e 0c 06 cb ......Sangfor aTrust VNIC
 13...b4 45 06 55 ed d9 ......Intel(R) Ethernet Connection (13) I219-V
 19...00 ff 6b dd 30 df ......SDP-Adapter
 24...2c 6d c1 f6 4c 22 ......Microsoft Wi-Fi Direct Virtual Adapter
 20...2e 6d c1 f6 4c 21 ......Microsoft Wi-Fi Direct Virtual Adapter #2
  5...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
 15...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
  6...2c 6d c1 f6 4c 21 ......Intel(R) Wi-Fi 6 AX201 160MHz
 18...00 ff 61 52 30 95 ......Sangfor SSL VPN CS Support System VNIC
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0  192.168.159.254  192.168.157.245     45
          2.0.0.0    255.255.255.0            在链路上           2.0.0.1    257
          2.0.0.1  255.255.255.255            在链路上           2.0.0.1    257
        2.0.0.255  255.255.255.255            在链路上           2.0.0.1    257
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      169.254.0.0      255.255.0.0            在链路上   169.254.248.203    291
  169.254.248.203  255.255.255.255            在链路上   169.254.248.203    291
  169.254.255.255  255.255.255.255            在链路上   169.254.248.203    291
    192.168.156.0    255.255.252.0            在链路上   192.168.157.245    301
  192.168.157.245  255.255.255.255            在链路上   192.168.157.245    301
  192.168.159.255  255.255.255.255            在链路上   192.168.157.245    301
    192.168.220.0    255.255.255.0            在链路上     192.168.220.1    291
    192.168.220.1  255.255.255.255            在链路上     192.168.220.1    291
  192.168.220.255  255.255.255.255            在链路上     192.168.220.1    291
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上   169.254.248.203    291
        224.0.0.0        240.0.0.0            在链路上     192.168.220.1    291
        224.0.0.0        240.0.0.0            在链路上   192.168.157.245    301
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上   169.254.248.203    291
  255.255.255.255  255.255.255.255            在链路上     192.168.220.1    291
  255.255.255.255  255.255.255.255            在链路上   192.168.157.245    301
===========================================================================
永久路由:
  无

C:\Users\11111>

添加路由:route add 目的网络 mask 子网掩码 网关----重启机器或网卡失效

route add 192.168.20.0 mask 255.255.255.0 192.168.10.1

添加永久:route -p add 目的网络 mask子网掩码 网关

route -p add 192.168.20.0 mask 255.255.255.0 192.168.10.1

删除路由:route delete 目的网络 mask 子网掩码

route delete 192.168.20.0 mask 255.255.255.0

处理实例

电脑上有2个网卡:
有线网卡:IP地址为192.168.1.253 (用来和局域网内设备通信)
无线网卡:IP地址为192.168.1.222 (用来连接外网,远程用)
环境:有线网卡和无线网卡同网段且有线局域网内有个设备ip为:192.168.1.235,无线网内同样有个设备ip为192.168.1.235
此时访问局域网内ip为192.168.1.235的设备系统不知道走哪条路由,需要手动控制目的地为192.168.1.235的路由
操作如下:

C:\Users\Administrator>route print
===========================================================================
接口列表
  6...00 ff 3f 79 ae 20 ......SDP-Adapter
 19...60 dd 8e f4 5f a7 ......Microsoft Wi-Fi Direct Virtual Adapter
 18...62 dd 8e f4 5f a6 ......Microsoft Wi-Fi Direct Virtual Adapter #2
  5...b4 45 06 55 ed 19 ......Intel(R) Ethernet Connection (13) I219-V    #有线网卡,接口编号为5
 12...60 dd 8e f4 5f a6 ......Intel(R) Wi-Fi 6 AX201 160MHz
  8...00 ff 61 52 30 95 ......Sangfor SSL VPN CS Support System VNIC
 15...60 dd 8e f4 5f aa ......Bluetooth Device (Personal Area Network)
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.166     35
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      192.168.1.0    255.255.255.0            在链路上     192.168.1.166    291
      192.168.1.0    255.255.255.0            在链路上     192.168.1.253    291
    192.168.1.166  255.255.255.255            在链路上     192.168.1.166    291
    192.168.1.253  255.255.255.255            在链路上     192.168.1.253    291
    192.168.1.255  255.255.255.255            在链路上     192.168.1.166    291
    192.168.1.255  255.255.255.255            在链路上     192.168.1.253    291
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上     192.168.1.253    291
        224.0.0.0        240.0.0.0            在链路上     192.168.1.166    291
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上     192.168.1.253    291
  255.255.255.255  255.255.255.255            在链路上     192.168.1.166    291
===========================================================================
永久路由:
  无

IPv6 路由表
=========================================================================
活动路由:
 接口跃点数网络目标                网关
  1    331 ::1/128                  在链路上
  5    291 fe80::/64                在链路上
 12    291 fe80::/64                在链路上
  5    291 fe80::915a:9a5a:c4d3:d80/128
                                    在链路上
 12    291 fe80::a6b9:7e55:3a3c:9c78/128
                                    在链路上
  1    331 ff00::/8                 在链路上
  5    291 ff00::/8                 在链路上
 12    291 ff00::/8                 在链路上
=========================================================================
永久路由:
  无

C:\Users\Administrator>route add 192.168.1.235 mask 255.255.255.255 192.168.1.253 IF 5
 操作完成!      #添加此路由,目的为有线网卡连接的IP地址192.168.1.235走interface编号为5的网卡

linux中一个网卡配置多个ip与命令行配置网卡(网络)

说明:ifconfig命令用于配置网卡

一个网卡配置多个ip

最近遇到一个问题需要单网卡配置多个 ip 地址。如果配置多个 IP ,只能使用ifconfig

~# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up 说明:up 是表示立即激活

如果给单个网卡 eth0 配置多个 ip 地址如何操作呢,如果使用 ifconfig 命令,那么上边需要改动的地方只有 eth0 而已,将eth0 改为eth0:x(x是0-255例如eth0:0或者eth0:1等等),eth0:x 称为虚拟网络接口,是建立在网络接口上边。
所以给单网卡配置多 ip的方法就是使用命令:
~# ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 up
~# ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 up
ping 测试通过,就完成了单网卡配置多 ip 的功能。这样 reboot 以后 ip 地址会变回去,所以要设置启动时自动激活 ip 设置。办法有以下:

第一种:
将上边的命令 ifconfig 加入到 rc.local 中去

~# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
~# sed -i.bak '$a\ifconfig ens33:1 192.168.220.222 netmask 255.255.255.0\
ifconfig ens33:2 192.168.220.223 netmask 255.255.255.0' /etc/rc.d/rc.local
~# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
ifconfig ens33:1 192.168.220.222 netmask 255.255.255.0
ifconfig ens33:2 192.168.220.223 netmask 255.255.255.0
~# chmod +x /etc/rc.d/rc.local
~# reboot
~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d1:46:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.108/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.220.222/24 brd 192.168.220.255 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet 192.168.220.223/24 brd 192.168.220.255 scope global secondary ens33:2
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed1:462e/64 scope link 
       valid_lft forever preferred_lft forever

第二种:
就是仿照/etc/sysconfig/network-scripts/ifcfg-eth0 增加一文件根据网络虚拟接口的名字进行命名,例如 ifcfg-eth0:0 或者 ifcfg-eth0:1 等等
下边看下 ifcfg-eth0:0 文件里面的配置信息
DEVICE=eth0:0                                                #网络虚拟接口 eth0:0 
ONB00T=yes                                                   #启动的时候激活 
BOOTPROTO=static                                       #使用静态 ip 地址 
TPADDR=172.27.120.20                                 #分配 ip 地址 
NETMASK=255.255.255.0                              #子网掩码 

禁用一个 虚拟网络接口的ip 则使用
~# ifconfig eth0:0 down

命令行配置网卡

启用禁用网卡
~# ifconfig device1 up   启用device1网卡
~# ifconfig device2 down 禁用device2网卡
~# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.201.105  netmask 255.255.254.0  broadcast 192.168.201.255
        inet6 fe80::8440:121b:71a1:7316  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5e:69:35  txqueuelen 1000  (Ethernet)
        RX packets 674  bytes 221807 (216.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 97  bytes 10877 (10.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
~# ifconfig ens33 down
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
~# cat /etc/sysconfig/network-scripts/ifcfg-Wired_connection_1 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME="Wired connection 1"
UUID=ea7f3f86-e95b-4ac0-9d1d-7ea1739eea6b
DEVICE=ens33                        ###找到device
ONBOOT=yes
~# ifconfig ens33 up 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.201.105  netmask 255.255.254.0  broadcast 192.168.201.255
        inet6 fe80::8440:121b:71a1:7316  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5e:69:35  txqueuelen 1000  (Ethernet)
        RX packets 674  bytes 221807 (216.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 97  bytes 10877 (10.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

dhclient的基本命令

dhclient device
dhclient eth0 ###eth0网卡自动获取ip地址(基于路由器自动分配ip)

动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

dhclient命令的作用是自动获取ip:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。
dhclient 是一个在类Unix系统中用于从DHCP服务器自动获取IP地址的命令行工具。要使用 dhclient 来自动获取IP地址,你需要以root用户或使用sudo执行以下命令:

sudo dhclient
执行这个命令后,dhclient 将开始发送DHCP请求来获取IP地址。如果本地网络上有DHCP服务器,那么服务器将响应请求并分配IP地址给客户端。

如果你想要 dhclient 在后台运行并持续获取新的IP地址,可以添加 -d 选项以指示它成为一个守护进程,并且将日志信息输出到系统日志中。
sudo dhclient -d                 ~ #dhclient -d ens33 &

要释放当前的IP地址并停止 dhclient 守护进程,你可以使用以下命令:
sudo dhclient -r

这些是使用 dhclient 的基本命令。在实际使用中,你可能还需要配置网络接口,或者在系统启动时自动运行 dhclient。这通常是通过 /etc/network/interfaces 或者 /etc/dhcp/dhclient.conf 配置文件来实现的,具体取决于你的操作系统。

语法格式:dhclient [参数] [网络接口]

常用参数:
参数    作用
-p    指定dhcp客户端监听的端口号(默认端口号86)
-d    总是以前台方式运行程序,加&可以置入后台
-q    安静模式,不打印任何错误的提示信息
-r    释放ip地址
-n    不配置任何接口
-x    停止正在运行的DHCP客户端,而不释放当前租约,杀死现有的dhclient
-s    在获取ip地址之前指定DHCP服务器
-w    即使没有找到广播接口,也继续运行
参考实例
在指定网络接口上发出DHCP请求:
~# dhclient eth0

释放IP地址:
~# dhclient -r
Killed old client process

从指定的服务器获取ip地址:
~# dhclient -s 192.168.60.240

停止运行dhclient:
~# dhclient -x
Killed old client process

文章参考:
https://www.linuxcool.com/dhclient

linux网卡文件永久配置ip地址,路由与DNS

Centos配置ip

方法1:

[dongm@localhost ~]$ cat /etc/sysconfig/network-scripts/ifcfg-ens33 
#TYPE="Ethernet"
#PROXY_METHOD="none"
#BROWSER_ONLY="no"
#BOOTPROTO="dhcp"
#DEFROUTE="yes"
#IPV4_FAILURE_FATAL="no"
#IPV6INIT="yes"
#IPV6_AUTOCONF="yes"
#IPV6_DEFROUTE="yes"
#IPV6_FAILURE_FATAL="no"
#IPV6_ADDR_GEN_MODE="stable-privacy"
#NAME="ens33"
#UUID="b51dcd4b-ca71-4372-852a-b3f3a1e52054"
#DEVICE="ens33"
#ONBOOT="yes"
 
BOOTPROTO="static"     #配置静态ip
NAME="ens33"           #网卡名
DEVICE="ens33"         #网卡设备名
ONBOOT="yes"           #开机加载此配置文件
IPADDR="192.168.220.128"    #ip地址
NETMASK="255.255.255.0"     #子网掩码
GATEWAY="192.168.220.2"     #网关,路由
DNS1="114.114.114.114"      #配置DNS解析网站域名

方法2:

文章作者:Slyar       文章来源:Slyar Home (www.slyar.com)

Linux命令行永久修改IP地址、网关和DNS。

1.修改IP地址

首先检查一下你的主机网卡数量及名称,相关信息在 /etc/sysconfig/network-scripts/ 下。

从图中可以看到我有2块网卡,第一块网卡为回环网卡,一般不需要设置;第二块为以太网物理网卡,编号为0,如果你有多个网卡,则编号为0、1、2、3...  。

使用vim编辑你需要设置IP的网卡,这里我只能修改ifcfg-eth0。

~# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0                                          #网卡名称

BOOTPROTO=static                               #获取ip的方式(static/dhcp/bootp),不解释

HWADDR=00:0C:29:B5:B2:69                #MAC地址

IPADDR=12.168.1.5                                #IP地址

NETMASK=255.255.255.0                      #子网掩码

NETWORK=192.168.1.0                         #网络地址

BROADCAST=192.168.0.255                 #广播地址

ONBOOT=yes                                        #yes表示随开机加载此配置信息

2.修改网关

~# vim /etc/sysconfig/network

增加一条网关信息

GATEWAY=192.168.1.1

3.修改DNS

~# vim /etc/resolv.conf

增加DNS信息即可

nameserver 192.168.1.1

4.重新加载网络配置

~# /etc/init.d/network restart

nmcli命令查看网卡的IP地址、网关、DNS等配置

nmcli是NetworkManager的命令行工具,用于在Red Hat7和Centos7及更高版本上管理网络设置。它提供了丰富的命令选项,可以完成网卡的所有配置工作,并且可以将配置写入配置文件,使其永久生效。以下是常用的nmcli命令:

~# rpm -qf `which nmcli`
NetworkManager-1.18.8-1.el7.x86_64
~# nmcli
ens33: connected to System ens33
        "Intel 82545EM"
        ethernet (e1000), 00:0C:29:C6:C3:39, hw, mtu 1500
        ip4 default
        inet4 192.168.137.150/24
        route4 192.168.137.0/24
        route4 0.0.0.0/0
        inet6 fe80::20c:29ff:fec6:c339/64
        route6 ff00::/8
        route6 fe80::/64

lo: unmanaged
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
        servers: 192.168.137.1
        interface: ens33

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
~# nmcli device show
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:C6:C3:39
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     System ens33
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.137.150/24
IP4.GATEWAY:                            192.168.137.1
IP4.ROUTE[1]:                           dst = 192.168.137.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.137.1, mt = 100
IP4.DNS[1]:                             192.168.137.1
IP6.ADDRESS[1]:                         fe80::20c:29ff:fec6:c339/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
~# nmcli device status
DEVICE  TYPE      STATE      CONNECTION   
ens33   ethernet  connected  System ens33 
virbr0  bridge    connected  virbr0
lo      loopback  unmanaged  --           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值