我有一个本地建立的Yocto图像,我运行在QEMU内。我需要将一个端口从主机转发到QEMU映像中的localhost。我使用的TAP连接将192.168.7.1分配给主机,192.168.7.2分配给QEMU映像。
我在主机上启动了一台服务器,QEMU映像可以成功地将其用于wget。在QEMU图像中,它的一个例子是:-

我想在QEMU映像中运行的应用程序与127.0.0.1对话,而不是192.168.7.1在5000端口上。如何将外部IP (192.168.7.1)中的此端口(5000)隧道到本地主机?一张我想要的小图:

以下是我尝试过的:
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 
ssh -f -N osboxes@192.168.7.1 -L 5000:localhost:5001(这里osboxes是主机的主机名)

任何帮助都将不胜感激。非常感谢!
发布于 2021-03-10 13:09:32
这个问题的作者。解决这个问题的方法是使用滑块连接。使用像xinetd、iptables、sshd这样的网络工具显示自己在工作--但在我的情况下却并非如此。在彻底地检查了每一种配置之后,我看到我的工作变得更难了,我从一个水龙头连接中引入了一个新的NIC。
如果要用模拟的OS的本地主机进行联网,那么使用slirp网络标志就容易多了。为我工作的QEMU旗子是:
-netdev user,id=net0,hostfwd=tcp::5000-:5000,hostfwd=tcp::5001-:5001https://unix.stackexchange.com/questions/632031
复制相似问题