Image

ナレッジベース → Linux Debian 12 での IPv4 から IPv6 へのポート転送

[仮想サーバー]
公開日: 06.06.2025

IPv4のポートからIPv6の別のポートへポートフォワーディングを設定する必要がある場合、socatを使用します。

IPv6がすでに設定されており、正常に動作していると仮定します。Linuxではping6 <domain>コマンド、Windowsではping -6 <domain>コマンドで確認できます。

まれに、pingは動作するが実際のトラフィックが流れない場合があります。LinuxおよびWindowsでcurl --ipv6 -k -I https://ipv6.google.comコマンドを使用して、接続をさらに確認できます(Windowsのcmdにcurlがない場合は、PowerShellを開いてください)。

IPv4の443番ポートをIPv6の4445番ポートにフォワーディングするタスクがあると仮定しましょう。

1. socatのインストール

apt install socat

2. ポートフォワーディング

socat TCP6-LISTEN:4445,fork,reuseaddr TCP4:127.0.0.1:443

443番ポートがローカルでアクセス可能であることを確認するか、外部IPに変更してください。

telnet 127.0.0.1 443

2.1 確認

telnet <ipv6> 4445

3. サービスの作成

再起動後にフォワーディングが自動的に再開されるように、サービスファイルを作成します。また、nginxサービスがこのコマンドより先に起動するようにします。

nano /etc/systemd/system/socat-portforward.service
[Unit]
Description=Socat IPv6からIPv4へのポートフォワーディング
After=network.target
After=nginx.service
Requires=nginx.service

[Service]
ExecStart=/usr/bin/socat TCP6-LISTEN:4445,fork,reuseaddr TCP4:127.0.0.1:443
Restart=always
RestartSec=3
User=root
Group=root
KillMode=process

[Install]
WantedBy=multi-user.target

3.1 サービスの停止

Ctrl + Cを押すか、&で実行した場合は以下を実行:

killall socat

3.2 サービスとして開始

systemctl daemon-reload
systemctl enable --now socat-portforward
systemctl status socat-portforward

3.3 起動順序

正しい起動順序を確保するために、[Unit]セクションに以下の行を追加しました:

After=nginx.service
Requires=nginx.service

完了!このコマンドは、さまざまな構成でポートフォワーディングを設定するために使用できます。





No Comments Yet