맥 크롬에서 웹사이트 안 열릴 때 해결법 | 집 서버 DNS 설정 오류 원인과 해결

집에서 웹사이트 만들었는데 왜 내 맥 크롬에서만 안 열리나요? — 2시간 삽질의 결말

분명히 서버도 켜져 있고, 스마트폰에서는 잘 열리는데, 내 맥북 크롬에서만 딱 막혀있는 거예요. 오류 메시지도 없고, 그냥 “사이트에 연결할 수 없음” 한 줄. 혼자 이것저것 만져보다가 결국 2시간이 날아갔어요. 여러분도 이런 경험 있으시죠? “분명히 내가 뭔가 잘못했나?” 싶어서 처음부터 다시 뒤지는 그 기분.

오늘은 그 삽질 경험을 낱낱이 공개할게요. 같은 상황에서 헤매는 분들이 저처럼 2시간 낭비 안 하셨으면 해서요.


일단 오늘 만든 게 뭔지부터 설명할게요

저는 요즘 포트폴리오용으로 WordPress 기반 웹사이트를 집에서 운영하고 있어요. 클라우드 서버 비용이 부담돼서, 집에 있는 공유기에 연결된 PC를 서버로 쓰는 방식이에요.

도메인은 가비아에서 comeandlook.site를 1년에 3,000원에 샀고요, 그 도메인이 집 서버 IP인 121.142.122.150을 가리키도록 DNS A레코드 설정을 해뒀어요.

쉽게 말하면 이런 거예요.

“comeandlook.site”라고 주소를 치면 → “121.142.122.150”이라는 집 주소로 찾아와라

이렇게 연결해둔 거예요. 여기까지는 괜찮았어요.


근데 이것저것 하다 보니 뭔가 꼬이기 시작했어요

Nginx 설정하다가 공백 하나 잘못 넣었고, 그게 SSL 인증서(Certbot)가 엉뚱한 파일에 붙어버리는 사고로 이어졌어요.

SSL 인증서는 쉽게 말하면 “이 사이트는 안전한 곳이에요”라는 자물쇠 표시 같은 거예요. 근데 그게 엉뚱한 파일에 붙었으니, 당연히 사이트가 이상하게 열리겠죠.

거기다 WordPress 내부에 주소가 172.30.1.55:8080이라고 박혀 있었어요. 이건 내부 네트워크 주소인데, 외부에서 접속하면 이 주소를 찾을 수 없으니까 관리자 페이지(wp-admin)도 안 열리는 거예요.

결국 Docker로 돌아가는 MySQL 데이터베이스에 직접 접속해서 그 주소를 바꿔줬고, wp-config.php 파일도 sed 명령어로 직접 수정했어요.

이것까지는 그나마 원인을 찾아서 고쳤어요.


그리고 진짜 문제가 시작됐어요 — /etc/hosts 수정의 함정

모든 걸 고쳤다고 생각하고 맥북 크롬에서 comeandlook.site를 쳤는데 여전히 안 열려요.

스마트폰에서는 되는데, 왜 내 맥에서만 안 되는 걸까요?

그때 저는 “혹시 맥이 도메인 주소를 못 찾는 건 아닐까?” 싶어서 /etc/hosts 파일을 수정했어요.

/etc/hosts는 쉽게 말하면 맥북 안에 있는 개인 전화번호부 같은 거예요.

인터넷에서 주소를 찾기 전에, 맥이 이 전화번호부를 먼저 뒤지거든요. 여기에 이름과 번호를 적어두면 인터넷까지 안 가도 바로 연결되는 방식이에요.

그래서 저는 여기에 이렇게 추가했어요.

172.30.1.55 comeandlook.site

“comeandlook.site를 치면 172.30.1.55로 가라”는 뜻이에요.

근데 이게 오히려 더 큰 문제를 만들어버렸어요.


크롬에서 웹사이트로 접속이 안돼요 — Private Network Access 정책

172.30.1.55는 집 안에서만 쓰는 내부 IP 주소예요.

이걸 보고 크롬이 이렇게 판단한 거예요.

“어? 인터넷 주소인 척하는데, 실제로는 집 안 주소잖아? 이거 수상한데. 차단!”

이게 바로 Chrome의 Private Network Access(프라이빗 네트워크 접근) 정책이에요.

초등학생도 이해할 수 있게 비유를 들어볼게요.

학교 앞 문방구 주소가 “서울시 강남구 테헤란로 123″이라고 알려줬는데, 막상 가보니까 우리 집 거실이에요. 이상하죠? 크롬은 그걸 보고 “이거 사기꾼 아니야?” 하고 문을 잠가버린 거예요.

실제로 크롬은 2021년부터 이 정책을 강화했어요. 공개된 인터넷 주소처럼 보이는데 실제로는 내부 네트워크 주소로 연결되면, 보안상 위험하다고 판단해서 막아버려요.

반면 파이어폭스(Firefox)는 이 정책이 없어요. 그래서 저 같은 상황에서 파이어폭스로 열면 그냥 잘 열려요. 실제로 저도 파이어폭스로 해봤더니 바로 되더라고요. 그때 “아, 이게 크롬 문제구나” 깨달았어요.

핵심 정리: 크롬은 인터넷 주소인 척 하면서 내부 IP로 연결되면 보안 이유로 차단해요.


해결책은 의외로 간단했어요 — 그냥 /etc/hosts 항목 지우기

2시간 동안 삽질하고 나온 결론이 황당할 정도로 단순해요.

/etc/hosts에서 아까 추가한 줄 그냥 지우세요.

끝이에요.

/etc/hosts에서 172.30.1.55 comeandlook.site 줄을 삭제하고 나니까, 크롬이 이번엔 인터넷을 통해서 정상적으로 도메인을 찾기 시작했어요.

그리고 집 공유기에는 헤어핀 NAT(Hairpin NAT) 이라는 기능이 있어요.

이것도 쉽게 설명할게요. 헤어핀 NAT은 집 안에서 집 밖 주소를 쳐도, 공유기가 “아, 이거 우리 집 서버잖아” 하고 알아서 집 서버로 연결해주는 기능이에요. 머리핀처럼 꺾어서 돌아오는 것 같다고 헤어핀이라고 불러요.

그러니까 /etc/hosts에 굳이 내부 주소를 적지 않아도, 공유기가 알아서 처리해주는 거였어요. 제가 오히려 쓸데없는 짓을 해서 크롬을 의심하게 만든 거예요.


이 삽질에서 배운 것들을 정리할게요

첫 번째: /etc/hosts는 가능하면 건드리지 마세요

문제가 생겼을 때 여기를 수정하고 싶은 충동이 생기는데, 오히려 더 꼬일 수 있어요. 특히 크롬 쓰는 분들은 Private Network Access 정책 때문에 저처럼 낭패를 볼 수 있어요.

두 번째: 다른 브라우저로 먼저 테스트해보세요

저처럼 크롬에서 안 열릴 때, 파이어폭스로 먼저 열어보세요. 파이어폭스에서 열리면 크롬 정책 문제일 가능성이 높아요. 반대로 파이어폭스에서도 안 열리면 서버 자체 문제예요.

세 번째: 스마트폰에서 된다고 맥에서도 된다는 보장 없어요

스마트폰은 모바일 데이터로 접속하면 완전히 외부에서 접속하는 거라 /etc/hosts 영향을 안 받아요. 그래서 폰에서 되는데 맥에서 안 된다면, 맥 설정 문제를 먼저 의심해보는 게 맞아요.


마지막으로 드리고 싶은 말

비전공자로 이것저것 혼자 세팅하다 보면 이런 삽질은 거의 필수예요.

저도 처음엔 Nginx가 뭔지, 헤어핀 NAT이 뭔지 하나도 몰랐어요. 근데 이렇게 삽질을 하고 나면 그 개념들이 머릿속에 딱 박혀요. “아, 크롬은 내부 IP로 연결되는 걸 싫어하는구나”라는 게 이제 절대 안 잊혀지거든요.

혹시 지금 저랑 비슷한 상황에서 헤매고 계신 분들, 이 글이 조금이라도 도움이 됐으면 좋겠어요.

2시간 날린 보람이 있어야 하니까요. 😅

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤