KVM 가상 머신에서 작동하는 http 요청, mysql이 아닌가요?

KVM 가상 머신에서 작동하는 http 요청, mysql이 아닌가요?

KVM 가상 머신이 있는 Ubuntu 서버가 있습니다.

호스트에 액세스할 수 있도록 방화벽에서 SSH를 허용했습니다. 또한 상태와 관련된 들어오는 트래픽을 허용했습니다.

다음은 호스트의 전체 iptables 설정입니다.

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  [MYIP]               anywhere             tcp dpt:ssh
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       all  --  [MYIP]               [VSERVER IP]  to:192.168.122.122

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24

가상 서버는 Windows에서 실행되며 로컬 IP를 가지고 있습니다. 192.168.122.122에서 볼 수 있듯이 PREROUTING모든 포트에서 나만 연결할 수 있도록 설정되어 있습니다.

원격 데스크톱이 잘 작동하고 외부 IP([VSERVER IP])를 사용하여 서버에 연결했습니다. 서버에 연결되면 Internet Explorer를 열고 stackoverflow.com을 입력해 보았습니다. 작동하고 페이지가 표시됩니다.

그러나 다른 서버에 쿼리를 작성해야 하는 간단한 Mysql 프로그램( 사용)을 실행하면 .NET MySql.Data.dll실패합니다.

MySql.Data.MySqlClient.MySqlException (0x800004005): 
Unable to connect to any of the specified MySQL hosts.

왜 그런 겁니까? 모든 웹서버에 대한 HTTP 요청은 문제가 없었는데 왜 Mysql 쿼리가 필요한 걸까요?

참고로 외부 MySQL 서버는 요청을 삭제하지 않습니다(방화벽이 일시적으로 비활성화됨). iptables에 뭔가 있을 텐데, 뭔지 모르겠어요.

이 문제를 어떻게 해결할 수 있나요?

답변1

불행하게도 내 (외부) MySQL 호스트의 방화벽에 내가 모르는 오류가 발생했습니다. 결국 내 vServer의 IP에 대해 MySQL 포트가 차단되었으므로 요청이 다시 돌아오지 않고 HTTP 요청이 작동하는 것입니다.

문제가 해결되었습니다.

항상 모든 방화벽을 다시 확인하세요! 교훈을 얻었습니다.

관련 정보