我有一个 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