Wi-Fi接続とエミュレーターの間にブリッジをセットアップしようとしています( [〜#〜] qemu [〜#〜] )。ホストと同じLAN上に、独自のIPアドレスを持つ仮想マシンが必要です。
QEMUではTAP(仮想ネットワークデバイス)を使用する必要があるため、 tuntaposx をインストールして実行し、TAPを使用してQEMUを開くことができます。
qemu-system-arm -kernel zImage.integrator -initrd arm_root.img -m 256 -net nic -net tap,ifname=tap1 -nographic -append "console=ttyAMA0"
QEMUがTAPインターフェースを開いたら、ブリッジを構成するスクリプトがあります。
sysctl -w net.link.ether.inet.proxyall=1
sysctl -w net.inet.ip.forwarding=1
sysctl -w net.inet.ip.fw.enable=1
ifconfig bridge0 create
ifconfig bridge0 addm en1
ifconfig tap1 0.0.0.0 up
ifconfig bridge0 addm tap1
ifconfig bridge0 up
VMに手動でIPを設定すると、VMからホストにpingできますが、ホストからVMにpingできません。また、ネットワークの他の部分にアクセスできません。 VM-IP overDHCPを設定できないことを含む。
何か案は?
Natdデーモンを実行し、そのトラフィックを許可するようにファイアウォールを構成するという2つの重要な手順を忘れています。
natd -interface en0 ipfw add divert natd ip from any to any via en0
en0は私のwifiインターフェース(macbook air)であり、これは魅力のように機能します。提案されたopenvpnソリューションは明らかに複雑です。
非常に具体的にしたい場合は、natdをより複雑な方法で実行することもできます(例:#fancy:natd -alias_address 10.0.0.2 -interface en0 -use_sockets -same_ports -unregistered_only -dynamic -clamp_mss)が、上記は機能します。
プロセス全体の詳細は http://en.blog.guylhem.net/post/88201449689/running-qemu-with-tap0-and-nat-under-osx-10-9-maverick
-netdev tap、id = xxx、ifname = tap0 -device e1000、netdev = xxx。デバイス固有が必要であり、カーネルがそれをサポートしていることを確認してください。Intele1000はユニバーサルにサポートされている必要があります。 x86 VMを実行しているMacでブリッジの問題を修正しました。インターネットに接続する必要がないため、私の場合は、ホストネットワークで複数のVM)を接続するだけです。だから私はaddmen0をしませんでした。PSはaddmスクリプトを持っていることを忘れないでください、qemu-netdevタップはあなたにこのエラーを警告します。これがあなたの問題を解決することを願っています。