포트 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 공급자 제어판에서 방화벽 규칙을 편집했습니다!
하지만 저는 터미널에서 이를 수행하는 방법을 정말로 배우고 싶습니다!