我不知道我是否在正确的论坛上,但这是我的问题:
我在 MacOS 10.9.5 上安装了带有 QEMU 的来宾 Debian Sparc64。我尝试在主机和来宾之间获取 ssh 访问权限,但没有成功。
我想找到一个简单的解决方案。据我所知,我使用以下选项启动 Sparc64:
qemu-system-sparc64 -hda debian_sparc64.img -m 2048 -net nic -net user,hostfwd=tcp::2222-:22 -nographic
然后,我尝试使用以下命令从我的 MacOS 主机连接到来宾:
ssh -p 2222 localhost
不幸的是,上面的命令不询问密码,它保持锁定状态。
如果有人能看到出了什么问题,请告诉我就可以了。
问候
更新1:
当QEMU VM运行时,
以下是 MacOS 主机上的结果:
nmap localhost -p 22
Starting Nmap 6.47 ( http://nmap.org ) at 2017-09-16 22:44 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
22/tcp open ssh
以及 MacOS 主机上的结果:
nmap localhost -p 2222
Starting Nmap 6.47 ( http://nmap.org ) at 2017-09-16 22:45 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
2222/tcp open EtherNet/IP-1
我忘了说,使用的 QEMU 映像(debian 9.0 Sparc64 guest)默认情况下没有在其上运行“SSH 服务器”,正如在 root 下使用以下命令显示的那样:
# ps aux | grep ssh
root 299 0.0 0.0 7168 1952 ttyS0 S+ 22:51 0:00 grep ssh
我仍然有“SSH 客户端”(我的意思是“ ssh
”命令),但我不知道如何从 Debian Sparc64 来宾连接到 MacOS 主机。
问题是我无法安装除 Debian-Sparc64 QEMU 映像提供的软件包之外的其他软件包,因为我在该来宾上没有网络(即我无法使用apt-get install
)。
如果有人能看到如何规避这个问题?
当然,有必要在客户机上安装网络(端口 80),但对于 MacOS 主机,这似乎很困难,因为有桥接和虚拟接口......
欢迎任何帮助
更新2:
根据@Stefan M
建议,安装后,我尝试通过以下方式启动Squid
来使用选项:guestfwd
qemu-system-sparc64 -hda debian_sparc64.img -m 2048 -net user,guestfwd=tcp::3128-:3128 -nographic
我收到以下错误:
qemu-system-sparc64: -net user,guestfwd=tcp::3128-:3128: could not open guest forwarding device 'guestfwd.tcp.3128'
qemu-system-sparc64: -net user,guestfwd=tcp::3128-:3128: Device 'user' could not be initialized
你能告诉我我必须做什么(MacOS 10.9.5 得到的结果)吗?
更新3:
我找到了一个教程这个链接。在这个页面之后,我做了:
首先安装 TUN/TAP 驱动程序以将 NIC 从虚拟机桥接到我的 OS X 主机
推出 QEMU:
qemu-system-sparc64 -hda debian_sparc64.img -m 2048 -net nic -net tap,script=no,downscript=no -nographic
- QEMU 启动后,我会遇到主机上的其他终端 (MacOS 10.9.5):
ifconfig tap0 192.168.1.21
事实上,我的本地网络使用 192.168.1.x IP。
- 进入
/etc/network/interfaces
访客 Debian Sparc64,我已经设置:
auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.21
不幸的是,我无法从 MacOS 主机到 Guest 或从 Guest 到 MacOS 主机进行 SSH 访问(例如,通过执行“来自主机”),ssh [email protected]
甚至通过 root 启动 qemu-system-sparc64。
如果有人能看出出了什么问题。
问候
答案1
请先尝试主机是否可达。这可以很容易地使用来完成地图。对于您的情况,这应该足够了:
nmap localhost -p 22
如果它说端口已打开,您应该检查来宾上的 sshd。如果它被过滤,可能是您的访客(传入)或您的主机(从本地传出/传入)上存在防火墙问题。
关于更新:
简单来说,你有两个选择:
1) 使用桥接网络,例如,如中所述这里,这样就可以安装sshd了。
2)使用访客转发。由于您已经通过 qemu 在一个方向上建立了连接(端口转发),因此您可以轻松地以相反的方式执行相同的操作:
- 在你的主机上安装代理(squid、tinyproxy 等)
- 将访客指向您的代理:(位于命令中未经测试的部分下方):
guestfwd=tcp::3128-:3128
- 最后但并非最不重要的一点是:使用 http_proxy 作为 apt 命令或在系统范围内设置变量。
当您最终运行 sshd 时,您应该能够通过 ssh 连接到来宾系统。
在第二次更新时:
如果我理解的话文档正确的话,您还应该提供 IP 地址。我的猜测是,您尝试将端口转发到同一主机(可能从来宾到来宾)。
guestfwd=[tcp]:server:port-dev
将访客 TCP 连接转发到字符设备 dev 端口上的 IP 地址服务器
所以它应该是这样的:
guestfwd=tcp:10.0.2.100:3128-tcp:10.10.1.1:3128
这将从端口 3128 上发送所有连接客人IP 10.10.1.1 至 10.0.2.100。