LoginSignup
3
2

More than 5 years have passed since last update.

VirtualBoxのゲストOSがipv6で待ち受けてる時、ホスト側にポートフォワードする

Posted at

VirtualBoxの中のゲストOSがこんな感じでipv6で待ち受けている時

$ netstat -na
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::2000                 :::*                    LISTEN 

VirtualBoxのポートフォワーディング設定でこんな感じにしても、ウンともスンとも言ってくれませんでした。
ポートフォワーディング設定
かといって、Host IP/Guest IPにipv6は入れられない模様。

どうもVirtualBoxのGUIのポートフォワーディングだと、ipv6は通せない模様。
いろいろ調べるとコマンドラインで設定すればなんとかなりそうな感じも見つけたのだけど、いまいち設定法がピンとこなかったので断念。

ゲストOS内でipv4ソケットをipv6ソケットに転送するやり方を試してみました。
使ったのはsocat
普通にapt-get等でも導入できるようだけど、手元の環境では諸事情あってソースからインストール。

インストールできたら、upstartの設定で

/etc/init/socat.conf
start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec socat TCP4-LISTEN:2001,fork TCP6:[::1]:2000 & 

でもって

$ sudo initctl start socat

これでゲストOSの、ipv4の2001番への接続ががipv6の2000番に転送されるので、ホストOS側に戻って

ポートフォワーディング設定

こんな感じにしてやれば、ホストOSの2000番ポート叩けばゲストOSのipv6 2000番ポートに届きます。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2