JP-Hosting, XFF란? - 프록시 환경에서 실제 접속자 IP 확인
안녕하세요.
JP-Hosting 입니다.
저희 JP-Hosting 단독 서버를 이용하시는 경우,
서버 당 무료 프록시를 1개 씩 제공해드리고 있습니다.
프록시를 이용해 웹 서비스를 운영하면
보안성과 안정성 측면에서 여러 장점이 있지만,
서버 로그를 확인할 때 실제 접속자 IP가 아닌
프록시 서버 IP가 기록되는 경우가 있습니다.
이번 글에서는 프록시 환경에서
실제 운영 중인 서비스에 접속한 사용자 IP를 확인하기 위한
XFF, 즉 X-Forwarded-For에 대해 안내 드리겠습니다.

XFF란 무엇인가요?
XFF는 X-Forwarded-For의 줄임 말입니다.
프록시 서버, 로드밸런서, 방어존 등을 거쳐
웹 서버에 접속할 때
실제 접속자 IP를 전달하기 위해 사용하는 HTTP 헤더입니다.
일반적으로 서버가 방문자와 직접 통신하는 구조라면
웹 서버 로그에는 방문자의 실제 IP가 기록됩니다.
하지만 프록시를 사용하는 경우에는
접속 흐름이 아래와 같이 바뀝니다.
방문자 → 프록시 서버 → 고객 서버
이 구조에서는 고객 서버 입장에서
직접 접속한 대상이 방문자가 아니라 프록시 서버로 보일 수 있습니다.
따라서 별도 설정이 없다면
웹서버 로그에는 실제 방문자 IP가 아닌
프록시 서버 IP가 기록될 수 있습니다.
이때 실제 방문자 IP를 확인하기 위해 사용하는 값이
바로 X-Forwarded-For입니다.
왜 XFF 확인이 필요한가요?
프록시 환경에서 XFF 설정이 되어 있지 않으면
서버 로그를 확인해도 실제 접속자 IP를 파악하기 어렵습니다.
이 경우 운영 중 아래와 같은 문제가 생길 수 있습니다.
- 실제 방문자 IP 확인이 어려움
- 공격자 IP 추적이 어려움
- 특정 IP 차단 판단이 어려움
- 관리자 페이지 접속 기록 확인이 불편함
- 접속 로그 분석이 부정확해짐
- 보안 사고 발생 시 원인 분석이 어려움
예를 들어 특정 시간대에 비정상적인 접속이 발생했을 때,
로그에 프록시 서버 IP만 남아 있다면
실제 어떤 IP에서 접속했는지 확인하기 어렵습니다.
따라서 프록시를 이용한 웹 서비스 운영 환경에서는
XFF 값을 확인할 수 있도록 설정하는 것이 중요합니다.
Windows / Linux 환경에 따라 설정 방식이 다릅니다
XFF는 서버 운영체제와 웹서버 종류에 따라
확인 및 설정 방법이 달라질 수 있습니다.
대표적으로 아래와 같이 구분됩니다.
| 서버 환경 | 웹서버 |
|---|---|
| Windows Server | IIS |
| Linux Server | Apache |
| Linux Server | Nginx |
Windows 서버에서 IIS를 사용하는 경우에는
IIS 로그 필드에 X-Forwarded-For 값을 추가하여
로그에서 실제 접속자 IP를 확인할 수 있도록 설정합니다.
Linux 서버에서 Apache 또는 Nginx를 사용하는 경우에는
웹 서버 로그 포맷에 XFF 값을 포함하거나,
필요한 경우 실제 클라이언트 IP로 인식하도록 설정합니다.
즉, 같은 XFF 설정이라도
Windows / Linux 환경에 따라 적용 위치와 방식이 다릅니다.
XFF는 어떻게 보이나요?
XFF 값은 보통 아래와 같은 형태로 기록됩니다.
X-Forwarded-For: 123.123.123.123
프록시를 여러 단계 거치는 구조에서는
아래처럼 여러 IP가 함께 기록될 수도 있습니다.
X-Forwarded-For: 123.123.123.123, 10.10.10.10
일반적으로 가장 앞쪽 IP가 최초 접속자 IP로 사용되는 경우가 많지만,
프록시 구성 방식에 따라 해석이 달라질 수 있습니다.
따라서 XFF 값을 확인할 때는
현재 사용 중인 프록시 구조와 웹 서버 설정을 함께 확인하는 것이 좋습니다.
XFF 설정 시 주의할 점
XFF는 실제 접속자 IP 확인에 유용하지만,
무조건 모든 값을 그대로 신뢰해서는 안 됩니다.
XFF 헤더는 요청 과정에서 전달되는 값이기 때문에
서버 구성에 따라 여러 IP가 함께 기록될 수 있고,
잘못된 설정에서는 원하지 않는 값이 로그에 남을 수도 있습니다.
또한 외부에서 임의로 XFF 값을 넣어 요청하는 경우도 있을 수 있으므로,
실제 운영 환경에서는 신뢰할 수 있는 프록시 서버를 거친 요청인지 함께 확인해야 합니다.
즉, XFF 설정은 단순히 로그에 값을 추가하는 것 뿐만 아니라,
어떤 프록시를 신뢰할 것인지 까지 고려해야 합니다.
저희가 서비스 중인 프록시를 통하여 구성해 주세요.
JP-Hosting 프록시 이용 시 확인이 필요한 경우
JP-Hosting에서 제공하는 프록시를 이용 중이라면
아래와 같은 상황에서 XFF 설정 확인을 권장 드립니다.
- 웹 서버 로그에 실제 방문자 IP가 보이지 않는 경우
- 로그에 프록시 서버 IP만 기록되는 경우
- 특정 IP의 접속 이력을 확인해야 하는 경우
- 공격 또는 비정상 접속 IP를 확인해야 하는 경우
- 관리자 페이지 접속 기록을 확인해야 하는 경우
- Windows IIS 로그에서 실제 접속자 IP를 보고 싶은 경우
- Linux Apache / Nginx 로그에서 실제 접속자 IP를 보고 싶은 경우
프록시를 사용하면 서버 앞 단에서 요청을 받아 전달하는 구조가 되기 때문에,
운영 중 로그 분석을 위해서는 XFF 확인이 중요한 부분이 됩니다.
XFF는 프록시 환경에서
실제 접속자 IP를 확인하기 위한 중요한 설정입니다.
JP-Hosting 단독 서버 이용 시 제공되는 프록시를 사용하면
보안성과 운영 안정성에 도움이 될 수 있지만,
서버 로그에는 실제 방문자 IP가 아닌 프록시 IP가 기록될 수 있습니다.
이런 경우 X-Forwarded-For 값을 확인할 수 있도록 설정하면
실제 접속자 IP 확인, 로그 분석, 보안 대응에 도움이 됩니다.
다만 Windows IIS, Linux Apache, Linux Nginx 등
서버 환경에 따라 설정 방식이 다르기 때문에
현재 사용 중인 운영체제와 웹서버 종류에 맞춰 적용해야 합니다.
XFF 설정이 필요하시거나
프록시 이용 중 실제 접속자 IP 확인이 어려우신 경우
JP-Hosting 고객센터로 문의해 주세요.
현재 서버 환경을 확인한 뒤,
Windows / Linux 환경에 맞는 XFF 설정 방법을 안내드리겠습니다.
윈도우 서버 세팅
IIS 구성
https://blog.jp-hosting.jp/2020/09/iis-x-forwarded-for_85.html
ASP.NET 웹구성
https://blog.jp-hosting.jp/2020/10/aspnet-x-forwarded-for-iis_11.html
리눅스 서버 세팅
nginx
https://blog.jp-hosting.jp/2020/09/php-x-forwarded-forxff-nginx-2_01504219165.html
Apache
https://blog.jp-hosting.jp/2026/05/ApacheXFF260526.html
이 글이 문제 시 삭제 처리하겠습니다.