> 백엔드 개발 > Golang > 502 잘못된 게이트웨이: IPSec 터널에 대한 net/http GET 실패

502 잘못된 게이트웨이: IPSec 터널에 대한 net/http GET 실패

PHPz
풀어 주다: 2024-02-09 13:09:25
앞으로
734명이 탐색했습니다.

502 错误网关:IPSec 隧道的 net/http GET 失败

PHP 편집기 Zimo는 인터넷을 사용할 때 가끔 502 Bad Gateway 프롬프트를 접합니다. 이 오류 메시지는 게이트웨이 서버와 업스트림 서버 사이에 통신 문제가 있어 요청이 완료되지 않았음을 의미합니다. 가능한 원인 중 하나는 IPSec 터널에 대한 net/http GET 실패입니다. 이 오류는 혼란스러울 수 있지만 원인과 해결 방법을 이해하면 문제를 빠르게 해결하고 인터넷의 편리함을 계속 누릴 수 있습니다.

질문 내용

은 Windows에서 전달됩니다. ipsec 隧道(vpn) 使用 net/http 包发出远程 get 请求时,get 请求失败,响应代码为 502 bad gateway。但是,由 curl 发送的具有相同 headersurimethod 的请求效果很好。 go 소스 코드는 다음과 같습니다.

으아악

트래픽의 패킷 캡처를 분석한 결과 vpn接口可以正常抓到curl发送的请求,但是getgo(net/http)에서 보낸 요청이 손실된 것으로 나타났습니다.

그렇다면 프레임워크가 패킷을 보내기 위해 잘못된 인터페이스를 선택했기 때문이 아닐까 싶습니다.

그래서 올바른 로컬 네트워크 인터페이스를 찾고 다음과 같이 localaddr 来发送我的 get 요청을 지정하려고 합니다.

으아악

client 函数替换 client 后,get 요청이 마침내 작동합니다.

client := &http.client{} => client, err := client(uri)

제 질문은 왜 golang이 자동으로 요청을 보내기 위해 올바른 로컬 네트워크 인터페이스를 선택하지 않는 걸까요? golang 没有选择正确的本地网络接口来自动发送请求?

解决方法

调试net.dial#DialContext后,发现该地址已更改为我在Visual Studio Code

해결 방법

net.dialnet.dial#DialContext를 디버깅한 후 Visual Studio Code 설정에서 주소가 프록시 주소로 변경된 것을 발견했습니다. 내 프록시 서버가 내 애플리케이션 요청을 처리할 수 없습니다.

프록시 설정을 제거하면

예상대로 작동합니다.

TypeScript/Java/Golang...,这是我第一次在 vscode IDE 中的 开发应用程序 上遇到代理问题。换句话说,我从来没有想过 IDE 代理能够完成它构建的工作。由于扩展或者IDE本身使用这个代理设置是合理的,但是我的golang중요한 사항

🎜저는 vscode를 사용하여 처리하고 있습니다. 🎜프로젝트 디버깅도 이를 사용하는데 이것이 정말 혼란스럽습니다. 🎜

위 내용은 502 잘못된 게이트웨이: IPSec 터널에 대한 net/http GET 실패의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿