标签: iproute

`ss -D`的格式规范是什么?

问题背景:我试图总结总带宽,但ss -i巧妙地将数字转换为更易读的格式,如 Kbps/s 或 Mbps/s,这是不准确的。所以确实ss -o有定时器。我查看了源代码,发现转换是硬编码的。所以我需要来自某个地方的原始数字。

man ss

-D FILE
Do not display anything, just dump raw information about TCP sockets to FILE after applying filters. If FILE is - stdout is used.
Run Code Online (Sandbox Code Playgroud)

我没有看到任何地方记录的格式。此外,这个原始转储在很大程度上取决于我认为的内核。

kernel tcp iproute

5
推荐指数
1
解决办法
1565
查看次数

将此 `ip` 命令转换为 `post-up` 挂钩中的 `route` 命令

我无法得到一个静态路由ip命令变成由的方式永久post-up/etc/network/interfaces。以下是相关详情:

/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# Network A
allow-hotplug eth0
iface eth0 inet static
address 10.1.10.100
netmask 255.255.255.0
gateway 10.1.10.1

# Network B
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.0.0
gateway 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

相关ip命令和路由表

ip route add 192.168.50.0/24 via 10.1.10.100 dev eth0
# This command makes things happy...

$ ip route show
default via 10.40.16.1 dev eth0
10.1.10.0/24 dev eth0  proto kernel …
Run Code Online (Sandbox Code Playgroud)

networking routing iproute

4
推荐指数
1
解决办法
7066
查看次数

什么是 ndisc_cache?

假设我想使用:

$ ip ntable show dev eth0 
inet arp_cache 
    dev eth0 
    refcnt 4 reachable 20744 base_reachable 30000 retrans 1000 
    gc_stale 60000 delay_probe 5000 queue 31 
    app_probes 0 ucast_probes 3 mcast_probes 3 
    anycast_delay 1000 proxy_delay 800 proxy_queue 64 locktime 1000 

inet6 ndisc_cache 
    dev eth0 
    refcnt 1 reachable 40768 base_reachable 30000 retrans 1000 
    gc_stale 60000 delay_probe 5000 queue 31 
    app_probes 0 ucast_probes 3 mcast_probes 3 
    anycast_delay 1000 proxy_delay 800 proxy_queue 64 locktime 0 
Run Code Online (Sandbox Code Playgroud)

什么ndisc_cache

linux networking ipv6 ipv4 iproute

4
推荐指数
1
解决办法
1368
查看次数

通过以太网电缆直接连接

这是为了“研究”而不是务实的目的——我想知道这是如何工作的,因为我下面的猜测不是。换句话说,我不想要一个涉及/etc/network/interfaces或任何其他特定于发行版或 NetworkManager 的答案。

请不要将其作为提供此类答案的问题的重复项而关闭。

我正在尝试使用常规(非交叉)以太网电缆连接两个 GNU/Linux 系统。有传言说,现在这应该不成问题了。

我试图做的是为两台机器上的接口添加一个私有IP:

ip addr add 10.0.0.1 dev eth0
Run Code Online (Sandbox Code Playgroud)

10.0.0.2另一台机器上。两者都没有连接到可以通过这种方式识别的网络。

然后我添加了来回路线:

ip route add 10.0.0.2 via 10.0.0.1
Run Code Online (Sandbox Code Playgroud)

反之亦然。ip addr随后,和的输出ip route似乎是正确的(见下文)。根据约翰的评论,我也尝试过这个而不添加任何路线;在这种情况下,ping 就会超时。

两台机器的 iptables 都是开放的;INPUT、OUTPUT 和 FORWARD 都是 ACCEPT,没有任何规则。

但当我尝试 ping 时会发生以下情况:

> ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
From 10.0.0.1 icmp_seq=1 Destination Host Unreachable
From 10.0.0.1 icmp_seq=2 Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)

请注意,返回此值的是本地接口 (10.0.0.1)。

这里需要什么额外的步骤和/或我哪里出错了?


使用后的路由表ip route ...如下所示:

default via 192.168.0.1 dev wlan0 
10.0.0.2 …
Run Code Online (Sandbox Code Playgroud)

networking routing ethernet iproute

4
推荐指数
1
解决办法
9409
查看次数

我怎样才能像以前用 ifconfig 看到的那样从 `ip link` 获取 ipv4 地址?

当我运行 ip 来获取 ip 地址时,我得到

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 6c:88:14:ba:cb:cc brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)

这些都不是 ipv4 地址,但ifconfig确实显示了它,

$ sudo /sbin/ifconfig      
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 1102801  bytes 74417671 (70.9 MiB) …
Run Code Online (Sandbox Code Playgroud)

networking ipv4 iproute ifconfig

4
推荐指数
1
解决办法
3069
查看次数

如何在`ip route`命令中获取数字输出

使用route命令时,-nswitch 可以解决问题。如何使用ip route命令获取数字输出?它的手册页没有提到任何类似的东西。具体来说,我需要0.0.0.0而不是default.

routing iproute

3
推荐指数
1
解决办法
1113
查看次数

在 Linux 路由表中列出到目的地的 *all* IP 路由

ip route get 2607:f8b0:4005:804::200e将显示到 的最佳(最长前缀)路线google.com,但它不会显示可以带我到那里的所有路线。

现在我正在使用ip -6 route show | grep 2607:f8b0:. 这会打印正确的路由,但也会打印该 /32 中的所有其他路由。

必须有更好的方法。

linux networking ip route iproute

3
推荐指数
1
解决办法
4398
查看次数

带有链接的默认路由

如果 enp0s18 上没有链接,我有

root@route:~# ip r
default via a.a.a.1 dev enp0s18 metric 10 linkdown 
default via a.a.b.1 dev enp0s10 metric 20 onlink linkdown 
default via x.x.x.49 dev wwx001e101f0000 metric 30 
Run Code Online (Sandbox Code Playgroud)

预计默认切换到 xxx49,但它尝试linkdown路由

root@route:~# ping -n ya.ru
PING ya.ru (87.250.250.242) 56(84) bytes of data.
From a.a.a.231 icmp_seq=1 Destination Host Unreachable
From a.a.a.231 icmp_seq=2 Destination Host Unreachable
From a.a.a.231 icmp_seq=3 Destination Host Unreachable
^C
Run Code Online (Sandbox Code Playgroud)

链接状态

4: enp0s10: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 …
Run Code Online (Sandbox Code Playgroud)

linux routing route iproute

3
推荐指数
1
解决办法
1万
查看次数

在刷新的路由表中重置默认网关时出现问题

我有一个接口 enp7s0,地址为 192.168.0.11。

我的路由器是192.168.0.1。

我的路由表是

Ziel            Router          Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 enp7s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp7s0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp7s0
Run Code Online (Sandbox Code Playgroud)

一切正常。我没有设置 iptalbes。

现在我尝试重置路由表并再次设置默认网关。

ip route flush table main
route add default gw 192.168.0.1
Run Code Online (Sandbox Code Playgroud)

冲洗就可以了。但添加失败。

SIOCADDRT: network is unreachable
Run Code Online (Sandbox Code Playgroud)

这里有什么问题??

route iproute

3
推荐指数
1
解决办法
7197
查看次数

无需猜测即可获取与 macvtap 关联的 /dev/tapX

按照指南进行设置macvtap效果很好。
该指南的摘录如下所示:

# ip link add link eth1 name macvtap0 type macvtap
# ip link set macvtap0 address 1a:46:0b:ca:bc:7b up
# ip link show macvtap0
Run Code Online (Sandbox Code Playgroud)

然后该指南继续解释您可以执行以下操作:

#qemu-system-x86_64 -net nic,model=virtio,addr=1a:46:0b:ca:bc:7b -net tap,fd=3 3<>/dev/tap11
Run Code Online (Sandbox Code Playgroud)

如果你的macvtap最终结果是/dev/tap11.
但是你如何检查哪个/dev/tapX接口实际上被分配给了macvtap0上面的接口呢?

我有很多服务随机在我的机器上设置点击设备。我无法猜测我的具体结果是哪一个。

我希望用以下命令启动 qemu 机器:

    -netdev tap,ifname="macvtap0",id=network0,script=no,downscript=no \
    -device i82559b,netdev=network0,mac=${MAC}
Run Code Online (Sandbox Code Playgroud)

可以,macvtap0我刚刚创建的设备在哪里。
然而,这给了我:

qemu-system-x86_64: could not configure /dev/net/tun (macvtap0): Invalid argument

本文概述:如何找到tap接口与其文件描述符之间的联系?- 他们描述了一种通过访问 PID 并检查关联文件描述符来实现此目的的方法,对我来说问题是 qemu 没有设置设备,而我是。并且没有与之关联的 PID。

/dev那么如何获取与新创建的接口关联的文件句柄macvtap? …

linux networking devices qemu iproute

3
推荐指数
1
解决办法
1110
查看次数

标签 统计

iproute ×10

networking ×6

linux ×4

routing ×4

route ×3

ipv4 ×2

devices ×1

ethernet ×1

ifconfig ×1

ip ×1

ipv6 ×1

kernel ×1

qemu ×1

tcp ×1