![如何显示网络接口正在运行?](https://linux22.com/image/752156/%E5%A6%82%E4%BD%95%E6%98%BE%E7%A4%BA%E7%BD%91%E7%BB%9C%E6%8E%A5%E5%8F%A3%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
如何显示特定网络路由正在运行,即使该路由不是默认路由?
当前的情况如下。
$ ip route
default via 192.168.2.1 dev enp0s31f6 proto dhcp metric 100
default via 10.162.141.192 dev wwp0s20f0u11i12 proto static metric 700
10.162.141.128/25 dev wwp0s20f0u11i12 proto kernel scope link src 10.162.141.191 metric 700
172.20.0.0/24 dev docker0 proto kernel scope link src 172.20.0.1 linkdown
172.20.2.0/24 dev br-8038758c8f58 proto kernel scope link src 172.20.2.1
192.168.2.0/24 dev enp0s31f6 proto kernel scope link src 192.168.2.21 metric 100
我想显示接口正在wwp0s20f0u11i12
工作。也就是说,我可以打开一个以该接口为源的连接,连接到另一个地址,并接收响应。
我认为类似的方法curl --interface wwp0s20f0u11i12 https://www.google.com
可以起作用,但没有回应。sudo tcpdump -n -i any -s 0 'tcp port https'
显示重复请求但没有回应。
00:55:44.148198 IP 10.162.141.191.41853 > 172.217.6.68.443: Flags [S], seq 3546122463, win 64240, options [mss 1460,sackOK,TS val 4025092804 ecr 0,nop,wscale 10], length 0
如果我设置wwp0s20f0u11i12
默认路由,我就可以成功发出相同的请求。
wwp0s20f0u11i12
当不是默认路由时我该如何提出此请求。
(我有另一个系统,我无法将接口更改为默认路由,并且我希望能够显示该接口上网络是否可运行。)
我正在使用带有 NetworkManager 的 Ubuntu 18.04。
答案1
据我了解,一个接口只能使用 1 条默认路由。
如果想要另一个接口来处理专门需要互联网的请求,那么可以使用的场景是:
- 假设存在服务器-客户端拓扑,则客户端是连接到服务器的另一台设备
- 从 enp0s31f6 NAT 规则被赋予到 wwp0s20f0u11i12 接口
- 从客户端连接到网络 wwp0s20f0u11i12
- 然后来自客户端的请求可以通过 wwp0s20f0u11i12 接口处理
*) 注意:从服务器端看不出 wwp0s20f0u11i12 接口可以处理请求
希望这会有所帮助