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