GoLang 웹서버 - 외부 액세스 - 포트 문제 - 포트 9003(또는 기타)에서 서비스를 제공하는 방법은 무엇입니까?

GoLang 웹서버 - 외부 액세스 - 포트 문제 - 포트 9003(또는 기타)에서 서비스를 제공하는 방법은 무엇입니까?

포트 9003(또는 기타)에서 서비스를 제공하는 방법은 무엇입니까?

VPS( ubuntu 16 )에서 실행되는 Apache WebServer가 있습니다. 표준적으로 포트 80에서 실행됩니다. 브라우저를 통해 시도해 보면 다음과 같습니다.

http://104.XXX.YYY.237

잘 작동합니다. (저는 완전한 php/mysql 앱을 실행하고 있습니다)

.....

이제 Golang으로 구축된 공개 REST API를 포트 9003(또는 무엇이든)에서 제공하고 싶습니다.

그래서 main.go 파일에 있습니다.

func main() {

    router := NewRouter()

    log.Fatal(http.ListenAndServe(":9003", router))
}

액세스하려고 하면:

http://104.XXX.YYY.237:9003

나는 전혀 응답을받지 못합니다.

...

내 로컬 호스트에서 유사한 구성이 실행 중입니다. 여기서 터미널, 컬, 브라우저 또는 Ajax를 통해 다음과 같은 주소로 성공적으로 액세스할 수 있습니다.http://localhost:9003

따라서 내 API에는 문제가 없습니다.

...

저는 Linux와 서버 구성에 대해 거의 알지 못하므로 이에 대해 조금 파고 보면 문제가 포트 9003일 수 있다고 생각할 수 있습니다! 그 결론을 테스트하기 위해 Apache 서비스를 중지하고 API 포트를 80으로 변경했으며 !! 빙고 !!! 그것은 효과가 있었다! 브라우저를 사용하여 API에 액세스할 수 있었습니다.

...

조금 더 조사한 결과 다음과 같은 (훌륭한) Linux 명령을 발견했습니다.

netstat -vatn

나에게 응답을주었습니다. (원래 구성에서 복원됨)

tcp6 0 0 :::9003 :::* LISTEN

tcp6 0 0 :::80 :::* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 104.XXX.YYY.237:80 177.XX.YYY.243:4297 TIME_WAIT

저는 Linux 전문가는 아니지만 첫 번째 줄에 9003 포트가 열려 있고 80 및 22와 같이 사용할 준비가 되어 있다고 나와 있습니다.

그러나 마지막 줄에는 서버가 104.XXX.YYY.237:80을 수신한다고 나와 있습니다.

그래서 한 줄이 부족해요. 나는 다음과 같은 것을 기대해야 한다고 결론을 내린다:

tcp6 0 0 104.XXX.YYY.237:9003 177.YY.XXX.243:4297 TIME_WAIT

내 질문은 다음과 같습니다.

_ 주어진 포트를 사용하여 내 VPS의 IP 주소(또는 그 이후의 내 도메인)를 사용하여 내 API에 대한 외부 액세스를 제공할 수 있는 방법은 무엇입니까? _ 내 결론에 대해 내가 뭔가 잘못 말했나요?

미리 감사드립니다

답변1

문제를 해결하고 포트 9003에서 내 API에 대한 외부 연결을 직접 허용했습니다!

이를 달성하기 위해 VPS 공급자 제어판에서 방화벽 규칙을 편집했습니다!

하지만 저는 터미널에서 이를 수행하는 방법을 정말로 배우고 싶습니다!

관련 정보