将网络数据包从主机转发到 QEMU 映像

将网络数据包从主机转发到 QEMU 映像

我有一个本地构建的 Yocto 镜像,并且在 QEMU 中运行。我需要将单个端口从主机转发到localhostQEMU 映像内部。我使用的 TAP 连接分配192.168.7.1给主机192.168.7.2和 QEMU 映像。

我在 QEMU 映像成功启动的主机上启动了一个服务器wget。 QEMU 图像中的示例:- QEMU 镜像 wget 快照

我想在 QEMU 映像中运行的应用程序不在127.0.0.1端口192.168.7.1上进行通信5000。如何通过隧道将5000外部 IP ( ) 中的端口 ( 192.168.7.1) 连接到本地主机?我想要的小图:- iptables

注:

以下是我尝试过的:

iptables

iptables -t nat -A PREROUTING -p tcp --dport 5000 -i eth0 -j DNAT --to-destination   127.0.0.1:5000
iptables -t nat -A POSTROUTING -p tcp --sport 5001 -o eth0 -j SNAT --to-source 192.168.7.1:5001 

iptables

ssh 隧道

ssh -f -N [email protected] -L 5000:localhost:5001

(这里osboxes是主机的主机名) ssh 隧道

任何帮助将不胜感激。非常感谢 !

答案1

问题的作者在这里。答案是使用滑动连接。使用xinetdiptables、等网络工具sshd显示自己可以工作 - 但在我的情况下却没有。在详尽地检查了每一个配置之后,我发现通过从分接头连接引入新的网卡只是让我的工作变得更加困难。

如果要使用模拟操作系统的本地主机来完成网络,那么使用 slirp 网络标志会更容易。对我有用的 QEMU 标志是:

-netdev user,id=net0,hostfwd=tcp::5000-:5000,hostfwd=tcp::5001-:5001

相关内容