Google Compute Engine에서 9090과 같은 특정 포트를 여는 방법


195

Google Compute Engine 인스턴스가 2 개이고 두 인스턴스 모두에서 포트 9090을 열려고합니다. 방화벽 규칙을 추가해야한다고 생각합니다.

내가 어떻게 할 수 있는지 말해 줄래?


7
이 질문에 대한 답변이 있다고 생각합니다. 아래 답변 중 하나를 선택 하시겠습니까? 미래 독자들이이 문제가 해결되었음을 더 쉽게 인식하는 데 도움이 될 것입니다.
modulitos

Subhradip, 답을 선택하십시오.
oligofren의

답변:


339

다음을 수행해야합니다.

  1. cloud.google.com으로 이동

  2. 내 콘솔로 이동

  3. 프로젝트를 선택하십시오

  4. 네트워킹> VPC 네트워크를 선택하십시오.

  5. "방화벽 규칙"을 선택하십시오.

  6. "방화벽 규칙 만들기"를 선택하십시오

  7. 규칙을 적용하여 VM 인스턴스를 선택하려면 대상> "지정된 대상 태그"를 선택하고 "대상 태그"에 태그 이름을 입력하십시오. 이 태그는 원하는 인스턴스에 새 방화벽 규칙을 적용하는 데 사용됩니다. 그런 다음 인스턴스에 네트워크 태그가 적용되어 있는지 확인하십시오.

  8. 포트 9090으로 들어오는 TCP 연결을 허용하려면 "프로토콜 및 포트"에 다음을 입력하십시오. tcp:9090

  9. 만들기를 클릭하십시오

이것이 도움이되기를 바랍니다.

업데이트 규칙을 사용자 정의 하려면 문서 를 참조하십시오 .


4
계산 엔진에는 "네트워크"옵션이 없습니다 (더 이상?)
Afr

8
예, 네트워크 옵션이 없습니다. 업데이트 된 경로는 프로젝트-> 네트워킹-> 방화벽 규칙
Caio Vertematti

1
내 경우에, 나는 단지이 allow httpallow https나는 새로운 방화벽 규칙을 추가했지만 나는 그것을 찾을 수 없습니다. 도움이된다면 프리 티어에도 있습니다.
A. L

1
http가 80 포트를 열고 https가 443을 열도록 허용해야합니다. 바로 가기입니다.
Carlos Rojas

4
문서의 메뉴 경로가 계속 변경됩니다. 답변에서 문서를 가리키는 것이 중요하다고 생각합니다 : cloud.google.com/vpc/docs/using-firewalls
Anupam

82

이 질문에 대답하는 명령 줄 접근 방식은 다음과 같습니다.

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 명령 설명서

이전 답변은 훌륭 하지만 Googlegcloud명령 대신 최신 명령을 사용하는 것이 좋습니다gcutil .

PS : Google의 방화벽 규칙에 대한 아이디어를 얻으려면 gcloud compute firewall-rules list모든 방화벽 규칙을 실행 하고 확인하십시오.


--description부품을 사용할 때 불만이 접수 되지만 그렇지 않으면 저에게 효과적입니다.
shabbychef

2
그들이 API를 변경했는지 확실하지 않지만 소스와 대상은 @modulitos의 대답과 반대되는 것 같습니다. 에 따라 방화벽 규칙 명령 문서 , source반면 들어오는 트래픽 의미 target에 규칙을 적용하는 경우를 의미합니다.
cindyxiaoxiaoli

1
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission@modulitos
alper

여파 테스트 @modulitos는 무엇입니까? 그것은인가 telnet :instance_ip :port또는 nmap -p :port :instance_ip?
Nam G VU

@alper "gcloud auth login"및 login
Anton Tkachov

10

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에서 방화벽 생성 및 관리 에 대한 자세한 내용은 여기를 참조하십시오 .


10
gcutil더 이상 사용할 수 없습니다; 를 사용하여 명령 행을 다시 작성하십시오 gcloud.
Misha Brukman

10

이 질문은 오래되었고 Carlos Rojas 의 대답은 좋지만 포트를 열려고 할 때 명심해야 할 몇 가지 사항을 게시해야한다고 생각합니다.

가장 먼저 기억해야 할 것은 네트워킹 섹션의 이름이 VPC 네트워킹으로 바뀌는 것 입니다. 방화벽 규칙 옵션을 사용할 수 있는 곳을 찾으려면 VPC 네트워킹을 참조하십시오. .

두 번째는 Linux VM에서 포트를 열려고하는 경우 ufw명령을 사용하여 포트를 열려고 시도하지 않아야합니다 . 나는 그것을 사용하려고 시도하고 VM에 대한 ssh 액세스를 잃었습니다. 내 실수를 반복하지 마십시오.

세 번째는 Windows VM에서 포트를 열려고하면 VPC 네트워킹-> 방화벽 규칙 과 함께 Windows 방화벽 에서도 VM 내부에 방화벽 규칙을 만들어야 합니다. Linux VM과 달리 두 방화벽 규칙 모두에서 포트를 열어야합니다. 따라서 VM 외부에서 포트에 액세스 할 수없는 경우 GCP 콘솔과 Windows 방화벽 모두에서 포트를 열 었는지 확인하십시오.

마지막 (명백한) 것은 불필요하게 포트를 열지 않는 것입니다. 더 이상 필요하지 않은 즉시 포트를 닫으십시오.

이 답변이 도움이 되길 바랍니다.


ufw명령으로 특정 포트를 열었 지만 여전히 ssh 액세스 권한이 있다는 점을 제외하고는 좋은 팁 입니다.
stackErr

7

나는 당신과 같은 문제가 있었고 @CarlosRojas 지침을 약간의 차이로 따라 해결할 수 있습니다. 새 방화벽 규칙을 생성하는 대신 default-allow-internal새 규칙을 생성해도 아무런 차이가 없으므로 어디에서나 트래픽을 허용하도록 규칙을 편집했습니다 .


새 방화벽 규칙을 작성하는 요금이 부과됩니다. 이 규칙을 편집하여이를 피할 수 있었습니까?
killjoy

@killjoy 확실하지 않습니다. 현재 Google 컴퓨팅 엔진을 사용하고 있지 않습니다. 죄송합니다.
Nevershowmyface

2
이것이 작동 할 수도 있지만이 방법에는 보안 문제가 있습니다. 내가 나를 위해 일한 것은 인스턴스에서 방화벽 태그를 사용하는 것이 었습니다. 방화벽 규칙을 만들 때 해당 규칙에 대한 "대상 태그"를 만들 수 있습니다. 그런 다음 해당 태그를 VM 인스턴스에 적용하여 특정 인스턴스에 규칙을 적용 할 수 있습니다. 자세한 여기 허용 대답을 참조하십시오 stackoverflow.com/questions/31509722/...
k00k

7

방화벽 규칙 생성

GCP의 방화벽 규칙에 익숙하지 않은 경우 방화벽 규칙 구성 요소 [1]을 검토하십시오. 방화벽 규칙은 네트워크 수준에서 정의되며 생성 된 네트워크에만 적용됩니다. 그러나 각각에 대해 선택한 이름은 프로젝트마다 고유해야합니다.

클라우드 콘솔의 경우 :

  1. Google Cloud Platform 콘솔에서 방화벽 규칙 페이지로 이동하십시오.
  2. 방화벽 규칙 생성을 클릭하십시오.
  3. 방화벽 규칙의 이름을 입력하십시오. 이 이름은 프로젝트마다 고유해야합니다.
  4. 방화벽 규칙이 구현 될 네트워크를 지정하십시오.
  5. 규칙의 우선 순위를 지정하십시오. 숫자가 낮을수록 우선 순위가 높습니다.
  6. 교통 방향으로 수신 또는 송신을 선택하십시오.
  7. 일치시 조치에 대해 허용 또는 거부를 선택하십시오.
  8. 규칙의 대상을 지정하십시오.

    • 규칙이 네트워크의 모든 인스턴스에 적용되도록하려면 네트워크의 모든 인스턴스를 선택하십시오.
    • 규칙을 적용하여 네트워크 (대상) 태그별로 인스턴스를 선택하려면 지정된 대상 태그를 선택한 다음 규칙을 적용 할 태그를 대상 태그 필드에 입력하십시오.
    • 연결된 서비스 계정으로 인스턴스를 선택하도록 규칙을 적용하려면 지정된 서비스 계정을 선택하고 서비스 계정이 현재 프로젝트에 있는지 또는 서비스 계정 범위 아래에있는 다른 계정인지 표시하고 대상 서비스에서 서비스 계정 이름을 선택하거나 입력하십시오 계정 필드.
  9. 수신 규칙의 경우 소스 필터를 지정하십시오.

    • IP 범위를 선택하고 CIDR 블록을 소스 IP 범위 필드에 입력하여 IP 주소 범위별로 들어오는 트래픽의 소스를 정의하십시오. 모든 네트워크의 소스에 0.0.0.0/0을 사용하십시오.
    • 서브넷을 선택한 다음 서브넷 팝업 버튼에서 필요한 것을 표시하여 서브넷 이름으로 들어오는 트래픽의 소스를 정의하십시오.
    • 네트워크 태그별로 소스를 제한하려면 소스 태그를 선택한 다음 소스 태그 필드에 네트워크 태그를 입력하십시오. 소스 태그 수에 대한 제한은 VPC 할당량 및 제한을 참조하십시오. 소스 태그 별 필터링은 서비스 계정으로 대상을 지정하지 않은 경우에만 사용할 수 있습니다. 자세한 내용은 서비스 계정 및 네트워크 태그 별 필터링을 참조하십시오.
    • 서비스 계정별로 소스를 제한하려면 서비스 계정을 선택하고 서비스 계정이 현재 프로젝트에 있는지 또는 서비스 계정 범위에있는 다른 계정인지를 표시 한 다음 소스 서비스 계정 필드에서 서비스 계정 이름을 선택하거나 입력하십시오. 대상이 네트워크 태그로 지정되지 않은 경우에만 소스 서비스 계정으로 필터링 할 수 있습니다. 자세한 내용은 서비스 계정 및 네트워크 태그 별 필터링을 참조하십시오.
    • 원하는 경우 두 번째 소스 필터를 지정하십시오. 보조 소스 필터는 기본 필터와 동일한 필터 기준을 사용할 수 없습니다.
  10. 송신 규칙의 경우 대상 필터를 지정하십시오.

    • IP 범위를 선택하고 CIDR 블록을 대상 IP 범위 필드에 입력하여 IP 주소 범위별로 나가는 트래픽의 대상을 정의하십시오. 모든 것을 의미하려면 0.0.0.0/0을 사용하십시오.
    • 서브넷을 선택한 다음 서브넷 팝업 버튼에서 필요한 것을 표시하여 서브넷 이름으로 나가는 트래픽의 대상을 정의하십시오.
  11. 규칙이 적용될 프로토콜 및 포트를 정의하십시오.

    • 규칙이 모든 프로토콜 및 포트에 적용되도록하려면 모두 허용 또는 모두 거부를 선택하십시오.

    • 특정 프로토콜 및 포트를 정의하십시오.

      • TCP 프로토콜 및 포트를 포함하려면 tcp를 선택하십시오. 쉼표로 구분 된 포트 목록 (예 : 20-22, 80, 8080)을 모두 입력하십시오.
      • UDP 프로토콜 및 포트를 포함하려면 udp를 선택하십시오. 쉼표로 구분 된 포트 목록 (예 : 67-69, 123)을 모두 입력하십시오.
      • icmp 또는 sctp와 같은 프로토콜을 포함하려면 기타 프로토콜을 선택하십시오.
  12. (선택 사항) 방화벽 상태를 적용 할 수 있지만 적용 상태를 비활성화로 설정하여 적용 할 수는 없습니다. 규칙 사용 안함을 클릭 한 후 사용 안함을 선택하십시오.

  13. (선택 사항) 방화벽 규칙 로깅을 활성화 할 수 있습니다.

    • 로그> 켬을 클릭하십시오.
    • 켜기를 클릭하십시오.
  14. 작성을 클릭하십시오.

링크 : [1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components


0

우선 순위를 낮추어 문제를 해결해야했습니다. 이로 인해 즉각적인 대응이 이루어졌습니다. 내가 기대했던 것이 아니라 효과가있었습니다.


0

console.cloud.google.com >> 프로젝트 선택 >> 네트워킹> VPC 네트워크 >> 방화벽 >> 방화벽 생성

규칙을 VM 인스턴스에 적용하려면 대상, "지정된 대상 태그"를 선택하고 "대상 태그"에 태그 이름을 입력하십시오. 이 태그는 원하는 인스턴스에 새 방화벽 규칙을 적용하는 데 사용됩니다.

"프로토콜 및 포트"에 tcp : 9090을 입력하십시오.

저장을 클릭하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.