
Linux VM 인스턴스에 애플리케이션 서버를 배포했습니다. 응용 프로그램이 성공적으로 실행되고 있으며 포트 3465에서 수신 대기하고 있습니다. 방화벽 규칙을 추가하여 포트 3465를 열었지만 여전히 수신 포트의 로컬 Windows 컴퓨터에서 응용 프로그램을 연결할 수 없습니다.
로컬 컴퓨터에서 VM 인스턴스 애플리케이션에 연결하기 위해 다음 IP 포트를 사용했습니다.
IP 주소:VM 인스턴스의 외부 IP
포트:3465
1) 포트를 열기 위해 방화벽 규칙을 추가했습니다
elon_musk@archway-146712:~$ gcloud compute firewall-rules list
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
<firewall-rule> default INGRESS 1000 tcp:3465
2) 전달 규칙을 추가하려고 시도했지만 작동하지 않았습니다.
elon_musk@archway-146712:~$ gcloud compute target-instances list
NAME ZONE INSTANCE NAT_POLICY
<ti-name> asia-south1-a <instance-name> NO_NAT
elon_musk@archway-146712:~$ gcloud compute forwarding-rules list
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET
<fr-name> asia-south1 xx.xxx.148.135 TCP asia-south1-a/targetInstances/<ti-name>
참고: 전달 규칙을 생성할 때 시스템은 자동으로 VM 인스턴스의 외부 IP가 아닌 IP 주소를 사용했습니다. 그럼 다시 질문은 전달 규칙의 IP 주소를 사용해야 하는지 아니면 VM 인스턴스의 외부 IP를 사용해야 하는지입니다.
Linux VM 인스턴스 iptables 구성은 다음과 같습니다.
elon_musk@archway-146712:~$ sudo iptables -t filter -L -v
Chain INPUT (policy ACCEPT 2609 packets, 376K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION all -- any any anywhere anywhere
0 0 ACCEPT all -- any docker0 anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- any docker0 anywhere anywhere
0 0 ACCEPT all -- docker0 !docker0 anywhere anywhere
0 0 ACCEPT all -- docker0 docker0 anywhere anywhere
Chain OUTPUT (policy ACCEPT 2433 packets, 237K bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
Chain DOCKER-ISOLATION (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- any any anywhere anywhere