当我使用 SSH 时,/proc/net/ 中不存在 tcpprobe

tcpprobe does't exist in /proc/net/ when I used SSH

我是网络世界的新手。我做了一个简单的 SDN,包含 3 个主机、一个交换机和一个控制器。我想使用 tcpprobe 监控流量。我在那里使用 xterm h1 和 运行 shell 打开了一个终端。我还在 h2 中制作了 iperf 服务器。但是当我使用 SSH 终端时,/proc/net/ 目录中不存在 tcpprobe!

enter image description here

但是我将它安装在我的 VM 上并且它存在于我的 VM 的 /proc/net/ 中。

enter image description here

sudo apt-get install transcode

这是我的 shell 代码:

#!/bin/bash

#used variables
eth=h1-eth0
port_to_probe=5001
#we will probe the iperf port
server_addr=10.0.0.2

#LOAD TCP CONGESTION CONTROL MODULES
modprobe tcp_probe port=$port_to_probe full=1 bufsize=50

for time_test in 10 20 30 60 10 20
do

echo "Traffic transmission time set to " $time_test "s randomly.\n"

#start logging data
sudo cat /proc/net/tcpprobe > tcprobe.dat &

#get the cat process ID to later kill it
pid=$!
#kill the logger
kill $pid

done

有人可以帮我吗?

问题是,每个 SSH 使用一个端口连接到 VM,这会导致 /proc/net/. 地址发生变化 要解决此问题,只需将提到的地址更改为 /proc/6337/net/.通过读取此地址,您实际上读取了真正的 VM 目录。所以最终的代码会变成:

cat /proc/6337/net/tcpprobe