Networking
將網路數據包從主機轉發到 QEMU 映像
我有一個本地建構的 Yocto 映像,我在 QEMU 中執行。我需要將單個埠從主機轉發到
localhost
QEMU 映像內部。我使用的 TAP 連接分配192.168.7.1
給主機,分配給192.168.7.2
QEMU 映像。我在 QEMU 映像能夠成功執行的主機上啟動了一個伺服器
wget
。它在 QEMU 映像中的外觀範例:-我想在 QEMU 映像中執行的應用程序
127.0.0.1
不在192.168.7.1
port 上5000
。如何5000
將外部 IP ( ) 中的此埠 ( ) 隧道傳輸192.168.7.1
到 localhost?我想要的小圖:-PS注意:
以下是我嘗試過的:
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
SSH 隧道
ssh -f -N osboxes@192.168.7.1 -L 5000:localhost:5001
任何幫助將不勝感激。非常感謝 !
問題的作者在這裡。答案是使用slirp 連接。使用
xinetd
,之類iptables
的網路工具sshd
表明自己在工作 - 但在我的情況下不是。在詳盡地檢查了這些配置中的每一個之後,我發現我只是通過從分接頭連接中引入一個新的 NIC 來使我的工作變得更加艱難。如果要使用模擬作業系統的 localhost 進行網路連接,則使用 slirp 網路標誌會更容易。對我有用的 QEMU 標誌是:
-netdev user,id=net0,hostfwd=tcp::5000-:5000,hostfwd=tcp::5001-:5001