포트 포워딩은 컴퓨터 네트워크에서 사용되는 기술로서, 네트워크 상에서 데이터를 주고받을 때 특정 포트로 들어오는 데이터를 다른 포트로 전달하는 과정을 말합니다. 이는 주로 라우터나 방화벽을 통해 수행되며, 특정 네트워크 서비스나 애플리케이션이 동작하는 데 필요한 특정 포트를 외부와 통신할 수 있도록 해줍니다.
일반적으로 포트 포워딩은 두 가지 주요 방법으로 나뉩니다:
예를 들어, 웹 서버에 접근하기 위해 로컬 포트 포워딩을 사용하면:
ssh -L 8080:localhost:80 user@example.com
위 명령어는 원격 서버인 example.com
의 80번 포트(웹 서버)로 접근하는 것처럼 보이지만, 실제로는 로컬 머신의 8080번 포트를 통해 데이터가 전달됩니다.
예를 들어, 원격 서버의 3306번 포트에 대한 접근을 허용하고, 이를 로컬 머신의 3306번 포트로 포워딩하려면:
ssh -R 3306:localhost:3306 user@example.com
이렇게 하면 원격 서버의 3306번 포트를 통해 로컬 머신의 MySQL 서버에 접근할 수 있게 됩니다.
포트 포워딩은 보안상 주의해야 할 점이 있습니다. 잘못된 구성으로 인해 네트워크 취약점이 발생할 수 있으며, 권한이 없는 사용자가 내부 서비스에 접근할 수 있게 될 수도 있습니다. 따라서 포트 포워딩은 필요한 경우에만 사용하고, 보안 설정에 주의하여 사용해야 합니다.