在 Linux 虚拟机中定位一个进程(很复杂)

在 Linux 虚拟机中定位一个进程(很复杂)

我有一个 virtualbox vm,我可以通过浏览器使用 localhost:8080 连接到它。vm 的网络是 NAT,端口从 localhost:8080 转发到 vm:8080。

但是,以 root 身份登录该虚拟机的控制台并运行 netstat 时,显示没有进程在 8080 上监听。我猜这里正在进行某种虚拟化。创建此虚拟机的公司正在一些项目中使用 docker,但似乎没有安装 docker。他们有时使用的另一项技术是 xen,但 xm 也缺失。更奇怪的是 /proc/self/cgroup 是空的。

我怎样才能赢得这场捉迷藏游戏?

答案1

也许它有助于找到过程

sudo netstat -avpe --numeric-hosts --numeric-ports 2> /dev/null| grep :{port number}

创建脚本check-port并设置权限

#!/bin/bash
echo "$(sudo netstat -avpe --numeric-hosts --numeric-ports 2> /dev/null| grep :$                                                                                                 1)"
echo -e "$s"

用法:

check-port [端口号]

答案2

一般情况下,客户防火墙可能会重定向端口。请尝试:

sudo iptables -nL | grep 8080

答案3

端口转发在 VirtualBox 端完成。

当您将端口 8080 连接到您的虚拟机时,您很可能连接到您的真实操作系统上打开的端口。

检查这个答案关于如何在virtualbox上定义: https://stackoverflow.com/questions/9537751/virtualbox-port-forward-from-guest-to-host

相关内容