Linux route
在Linux系统中,route
命令用于管理路由表。路由表决定了数据包如何从一个网络传送到另一个网络。以下是一些常用的route
命令及其用途:
-
route add
:添加一个新的路由条目到路由表中。例如,要添加一个目标网络为192.168.1.0/24,下一跳为网关192.168.1.1的路由,可以使用以下命令:
bashroute add -net 192.168.1.0/24 gw 192.168.1.1 route add -net 192.168.10.0/24 gw 192.168.10.254 route add -net 192.168.20.0/24 gw 0.0.0.0 route add -net 192.168.0.0/20 gw 192.168.20.254
-
route del
:从路由表中删除一个路由条目。例如,要删除上面添加的路由,可以使用以下命令:
bashroute del -net 192.168.1.0/24 route del -net 192.168.10.0/24 route del -net 192.168.0.0/24
-
route show
:显示当前的路由表。这个命令会列出系统当前的所有路由条目,包括目标网络、子网掩码、网关和接口等信息。
-
route flush
:清除路由表中的所有路由条目。这个命令会移除所有手动添加的路由条目,但不会影响默认的路由。
-
route list
:列出路由表中的路由条目。这个命令与
route show
类似,也会显示当前的路由表信息。
使用这些命令时,需要注意权限问题。某些命令可能需要root权限才能执行。
路由表的管理是网络配置中的重要部分,它直接影响到网络的通信效率和稳定性。在进行路由表的修改操作时,建议先了解当前网络的拓扑结构和路由策略,以免造成不必要的网络中断。
bash
[root@localhost /]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-afed0e6a1f15
192.168.0.0 0.0.0.0 255.255.240.0 U 0 0 0 br-76ecdb9337c6
192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Linux到达某个ip的路由
bash
[rushi@77 ~]$ traceroute 192.168.10.205
traceroute to 192.168.10.205 (192.168.10.205), 30 hops max, 60 byte packets
1 gateway (192.168.20.254) 0.159 ms 0.164 ms 0.172 ms
2 192.168.10.205 (192.168.10.205) 0.417 ms 0.402 ms 0.394 ms
ubuntu@master-133:~$ traceroute 192.168.20.202
traceroute to 192.168.20.202 (192.168.20.202), 30 hops max, 60 byte packets
1 _gateway (192.168.10.254) 0.516 ms 0.455 ms 0.434 ms
2 192.168.20.202 (192.168.20.202) 0.402 ms 0.371 ms 0.341 ms
在Linux系统中,要查看到达特定IP地址的路由,可以使用route
命令结合gw
选项。具体命令如下:
bash
route -n get host [IP地址]
这里的[IP地址]
是你想要查询到达的路由目标。例如,如果你想要查看到达IP地址192.168.1.10的路由,你应该执行:
bash
route -n get host 192.168.1.10
route -n get host 192.168.20.202
-n
选项用于输出数字表示的接口索引,而不是接口名称。get
命令用于查询到达指定主机的路由。
执行这个命令后,你会看到一个输出,其中包含了目标IP地址、子网掩码、下一跳网关、输入接口和路由类型等信息。
请注意,这个命令只能告诉你数据包发送时所使用的路由。如果数据包有多个路径,这个命令只会显示默认的路由。如果你需要更详细的信息,可能需要使用其他工具,如traceroute
或mtr
。
在使用这些命令时,确保你有足够的权限,因为某些操作可能需要root权限。如果你没有权限,你可以使用sudo
来执行命令。
欧拉服务器无线网与有线网冲突问题解决
1.查看路由
bash
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-afed0e6a1f15
192.168.0.0 0.0.0.0 255.255.240.0 U 0 0 0 br-76ecdb9337c6
192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
br-76ecdb9337c6与eno1目标ip有冲突。
2.禁用br-76ecdb9337c6
bash
[root@localhost ~]# ifconfig
br-76ecdb9337c6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 255.255.240.0 broadcast 192.168.15.255
ether 02:42:e6:af:4c:b7 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
br-afed0e6a1f15: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.19.0.1 netmask 255.255.0.0 broadcast 172.19.255.255
inet6 fe80::42:45ff:fe89:708a prefixlen 64 scopeid 0x20<link>
ether 02:42:45:89:70:8a 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
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:30:7a:05:08 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
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.20.55 netmask 255.255.255.0 broadcast 192.168.20.255
inet6 fe80::1f9:f059:3a76:d89 prefixlen 64 scopeid 0x20<link>
ether 4c:cc:6a:7d:d4:3f txqueuelen 1000 (Ethernet)
RX packets 22127 bytes 2111537 (2.0 MiB)
RX errors 0 dropped 108 overruns 0 frame 0
TX packets 5774 bytes 1405989 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdff00000-dff20000
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 21885 bytes 78257079 (74.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21885 bytes 78257079 (74.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:48:f4:68 txqueuelen 1000 (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
wls3: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 5e:67:7d:63:0b:13 txqueuelen 1000 (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
禁用br-76ecdb9337c6
ifconfig br-76ecdb9337c6 down
3.禁用后的ipconfig、route
bash
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-afed0e6a1f15
192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]# ifconfig
br-afed0e6a1f15: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.19.0.1 netmask 255.255.0.0 broadcast 172.19.255.255
inet6 fe80::42:45ff:fe89:708a prefixlen 64 scopeid 0x20<link>
ether 02:42:45:89:70:8a 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
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:30:7a:05:08 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
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.20.55 netmask 255.255.255.0 broadcast 192.168.20.255
inet6 fe80::1f9:f059:3a76:d89 prefixlen 64 scopeid 0x20<link>
ether 4c:cc:6a:7d:d4:3f txqueuelen 1000 (Ethernet)
RX packets 24350 bytes 2323114 (2.2 MiB)
RX errors 0 dropped 123 overruns 0 frame 0
TX packets 6160 bytes 1507870 (1.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdff00000-dff20000
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 21970 bytes 78287679 (74.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21970 bytes 78287679 (74.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:48:f4:68 txqueuelen 1000 (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
wls3: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 5e:67:7d:63:0b:13 txqueuelen 1000 (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
[root@localhost ~]#
增加新的路由到eno1并添加到开机启动中
1.先查看服务器ip情况
bash
[root@localhost ~]# ip addr
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: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 4c:cc:6a:7d:d4:3f brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
inet 192.168.20.55/24 brd 192.168.20.255 scope global dynamic noprefixroute eno1
valid_lft 59950sec preferred_lft 59950sec
inet6 fe80::1f9:f059:3a76:d89/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wls3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether ee:aa:31:11:eb:e8 brd ff:ff:ff:ff:ff:ff permaddr b8:81:98:dd:9f:e1
altname wlp2s0
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:48:f4:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:48:f4:68 brd ff:ff:ff:ff:ff:ff
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:6e:c2:0d:af brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
7: br-76ecdb9337c6: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:23:bd:0c:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/20 brd 192.168.15.255 scope global br-76ecdb9337c6
valid_lft forever preferred_lft forever
8: br-afed0e6a1f15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:7a:85:5d:69 brd ff:ff:ff:ff:ff:ff
inet 172.19.0.1/16 brd 172.19.255.255 scope global br-afed0e6a1f15
valid_lft forever preferred_lft forever
inet6 fe80::42:7aff:fe85:5d69/64 scope link
valid_lft forever preferred_lft forever
10: vethf121953@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-afed0e6a1f15 state UP group default
link/ether 9e:e8:72:8f:78:c4 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::9ce8:72ff:fe8f:78c4/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]#
[root@localhost ~]#
2.
[root@localhost ~]# route add -net 192.168.0.0/20 gw 192.168.20.254 dev eno1
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-afed0e6a1f15
192.168.0.0 _gateway 255.255.240.0 UG 0 0 0 eno1
192.168.0.0 192.168.10.254 255.255.240.0 UG 0 0 0 br-76ecdb9337c6
192.168.0.0 0.0.0.0 255.255.240.0 U 0 0 0 br-76ecdb9337c6
192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost NetworkManager]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 192.168.20.254 255.255.240.0 UG 0 0 0 eno1
network: version: 2 renderer: networkd ethernets: eno1: dhcp4: no routes: - to: 192.168.0.0/20 via: 192.168.20.254 metric: 100
bash
ssh root@192.168.20.55
加入到开机启动的脚本
bash
D:\work\test\route_add_linux.py
欧拉服务器中的路径:/home/service/route_add.py