Google Compute Engine 인스턴스가 2 개이고 두 인스턴스 모두에서 포트 9090을 열려고합니다. 방화벽 규칙을 추가해야한다고 생각합니다.
내가 어떻게 할 수 있는지 말해 줄래?
Google Compute Engine 인스턴스가 2 개이고 두 인스턴스 모두에서 포트 9090을 열려고합니다. 방화벽 규칙을 추가해야한다고 생각합니다.
내가 어떻게 할 수 있는지 말해 줄래?
답변:
다음을 수행해야합니다.
cloud.google.com으로 이동
내 콘솔로 이동
프로젝트를 선택하십시오
네트워킹> VPC 네트워크를 선택하십시오.
"방화벽 규칙"을 선택하십시오.
"방화벽 규칙 만들기"를 선택하십시오
규칙을 적용하여 VM 인스턴스를 선택하려면 대상> "지정된 대상 태그"를 선택하고 "대상 태그"에 태그 이름을 입력하십시오. 이 태그는 원하는 인스턴스에 새 방화벽 규칙을 적용하는 데 사용됩니다. 그런 다음 인스턴스에 네트워크 태그가 적용되어 있는지 확인하십시오.
포트 9090으로 들어오는 TCP 연결을 허용하려면 "프로토콜 및 포트"에 다음을 입력하십시오. tcp:9090
만들기를 클릭하십시오
이것이 도움이되기를 바랍니다.
업데이트 규칙을 사용자 정의 하려면 문서 를 참조하십시오 .
allow http
와 allow https
나는 새로운 방화벽 규칙을 추가했지만 나는 그것을 찾을 수 없습니다. 도움이된다면 프리 티어에도 있습니다.
이 질문에 대답하는 명령 줄 접근 방식은 다음과 같습니다.
gcloud compute firewall-rules create <rule-name> --allow tcp:9090 --source-tags=<list-of-your-instances-names> --source-ranges=0.0.0.0/0 --description="<your-description-here>"
9090
이름을 지정한 인스턴스 의 포트가 열립니다 . 모든 인스턴스에 규칙을 생략 --source-tags
하고 --source-ranges
적용합니다. 자세한 내용은에 Gcloud 문서 및firewall-rule create
명령 설명서
이전 답변은 훌륭 하지만 Google 은 gcloud
명령 대신 최신 명령을 사용하는 것이 좋습니다gcutil
.
PS : Google의 방화벽 규칙에 대한 아이디어를 얻으려면 gcloud compute firewall-rules list
모든 방화벽 규칙을 실행 하고 확인하십시오.
--description
부품을 사용할 때 불만이 접수 되지만 그렇지 않으면 저에게 효과적입니다.
source
반면 들어오는 트래픽 의미 target
에 규칙을 적용하는 경우를 의미합니다.
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission
@modulitos
telnet :instance_ip :port
또는 nmap -p :port :instance_ip
?
tcp:9090
인스턴스에 대한 인바운드 액세스를 열려면 방화벽 규칙을 추가 해야합니다. 두 개 이상의 인스턴스가 있고이 두 개에만 9090을 열려면 해당 두 인스턴스가 공유하는 태그가 있는지 확인해야합니다. 콘솔이나 명령 줄을 통해 태그를 추가하거나 업데이트 할 수 있습니다. 필요한 경우 GUI를 사용하여 읽기-수정-쓰기주기를 처리하므로 GUI를 사용하는 것이 좋습니다 setinstancetags
.
모든 인스턴스에 포트 9090을 열려면 다음과 같은 방화벽 규칙을 만들 수 있습니다.
gcutil addfirewall allow-9090 --allowed=tcp:9090
모든 인스턴스에 적용됩니다.
응용 프로그램을 제공하는 두 인스턴스에 포트 9090 만 열려면 태그가 같은지 확인한 my-app
후 다음과 같이 방화벽을 추가하십시오.
gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app
GCE에서 방화벽 생성 및 관리 에 대한 자세한 내용은 여기를 참조하십시오 .
gcutil
더 이상 사용할 수 없습니다; 를 사용하여 명령 행을 다시 작성하십시오 gcloud
.
이 질문은 오래되었고 Carlos Rojas 의 대답은 좋지만 포트를 열려고 할 때 명심해야 할 몇 가지 사항을 게시해야한다고 생각합니다.
가장 먼저 기억해야 할 것은 네트워킹 섹션의 이름이 VPC 네트워킹으로 바뀌는 것 입니다. 방화벽 규칙 옵션을 사용할 수 있는 곳을 찾으려면 VPC 네트워킹을 참조하십시오. .
두 번째는 Linux VM에서 포트를 열려고하는 경우 ufw
명령을 사용하여 포트를 열려고 시도하지 않아야합니다 . 나는 그것을 사용하려고 시도하고 VM에 대한 ssh 액세스를 잃었습니다. 내 실수를 반복하지 마십시오.
세 번째는 Windows VM에서 포트를 열려고하면 VPC 네트워킹-> 방화벽 규칙 과 함께 Windows 방화벽 에서도 VM 내부에 방화벽 규칙을 만들어야 합니다. Linux VM과 달리 두 방화벽 규칙 모두에서 포트를 열어야합니다. 따라서 VM 외부에서 포트에 액세스 할 수없는 경우 GCP 콘솔과 Windows 방화벽 모두에서 포트를 열 었는지 확인하십시오.
마지막 (명백한) 것은 불필요하게 포트를 열지 않는 것입니다. 더 이상 필요하지 않은 즉시 포트를 닫으십시오.
이 답변이 도움이 되길 바랍니다.
ufw
명령으로 특정 포트를 열었 지만 여전히 ssh 액세스 권한이 있다는 점을 제외하고는 좋은 팁 입니다.
나는 당신과 같은 문제가 있었고 @CarlosRojas 지침을 약간의 차이로 따라 해결할 수 있습니다. 새 방화벽 규칙을 생성하는 대신 default-allow-internal
새 규칙을 생성해도 아무런 차이가 없으므로 어디에서나 트래픽을 허용하도록 규칙을 편집했습니다 .
방화벽 규칙 생성
GCP의 방화벽 규칙에 익숙하지 않은 경우 방화벽 규칙 구성 요소 [1]을 검토하십시오. 방화벽 규칙은 네트워크 수준에서 정의되며 생성 된 네트워크에만 적용됩니다. 그러나 각각에 대해 선택한 이름은 프로젝트마다 고유해야합니다.
클라우드 콘솔의 경우 :
규칙의 대상을 지정하십시오.
수신 규칙의 경우 소스 필터를 지정하십시오.
송신 규칙의 경우 대상 필터를 지정하십시오.
규칙이 적용될 프로토콜 및 포트를 정의하십시오.
규칙이 모든 프로토콜 및 포트에 적용되도록하려면 모두 허용 또는 모두 거부를 선택하십시오.
특정 프로토콜 및 포트를 정의하십시오.
(선택 사항) 방화벽 상태를 적용 할 수 있지만 적용 상태를 비활성화로 설정하여 적용 할 수는 없습니다. 규칙 사용 안함을 클릭 한 후 사용 안함을 선택하십시오.
(선택 사항) 방화벽 규칙 로깅을 활성화 할 수 있습니다.
작성을 클릭하십시오.
링크 : [1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components
console.cloud.google.com >> 프로젝트 선택 >> 네트워킹> VPC 네트워크 >> 방화벽 >> 방화벽 생성
규칙을 VM 인스턴스에 적용하려면 대상, "지정된 대상 태그"를 선택하고 "대상 태그"에 태그 이름을 입력하십시오. 이 태그는 원하는 인스턴스에 새 방화벽 규칙을 적용하는 데 사용됩니다.
"프로토콜 및 포트"에 tcp : 9090을 입력하십시오.
저장을 클릭하십시오.