n1-standard-2
我有一个在 Google Cloud Platform (中)中运行的计算引擎 VM australia-southeast1-b
。
该实例正在运行 Web 服务器,具有外部和内部静态 IP,使用default
网络和子网,并且分配有一个域。
经过一段随机的时间后,机器变得无法访问。我本想找到原因,但当我尝试时tcptraceroute
,结果如下:
健康
$ tcptraceroute my.domain.nz 443
Selected device wlp2s0, address 192.168.100.204, port 38543 for outgoing packets
Tracing the path to my.domain.nz (35.189.255.255) on TCP port 443 (https), 30 hops max
1 192.168.100.1 2.982 ms 1.719 ms 1.884 ms
2 192.168.1.254 2.540 ms 1.991 ms 2.091 ms
3 * * *
4 * * *
5 ae8-10.akbr6.global-gateway.net.nz (122.56.116.5) 4.685 ms 3.459 ms 3.439 ms
6 ae7-2.akbr7.global-gateway.net.nz (122.56.119.53) 3.908 ms 2.855 ms 2.693 ms
7 xe5-0-4.sgbr3.global-gateway.net.nz (122.56.127.186) 29.059 ms 30.652 ms 28.932 ms
8 ae2-10.sgbr4.global-gateway.net.nz (202.50.232.246) 27.784 ms 27.875 ms 35.276 ms
9 google-gsw.sgbr4.global-gateway.net.nz (202.50.237.198) 30.394 ms 28.655 ms 28.791 ms
10 108.170.247.33 29.646 ms 29.712 ms 29.606 ms
11 209.85.242.142 29.048 ms 28.481 ms 28.239 ms
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 my.domain.nz (35.189.255.255) [open] 31.312 ms 29.198 ms 29.871 ms
不良
$ tcptraceroute my.domain.nz 443
Selected device wlp2s0, address 192.168.100.204, port 41597 for outgoing packets
Tracing the path to my.domain.nz (35.189.255.255) on TCP port 443 (https), 30 hops max
1 192.168.100.1 4.428 ms 1.306 ms 1.813 ms
2 192.168.1.254 2.654 ms 1.908 ms 2.545 ms
3 * * *
4 * * *
5 ae8-10.akbr6.global-gateway.net.nz (122.56.116.5) 102.289 ms 3.407 ms 3.176 ms
6 ae7-2.akbr7.global-gateway.net.nz (122.56.119.53) 4.630 ms 3.817 ms 3.299 ms
7 xe5-0-2.sgbr3.global-gateway.net.nz (122.56.127.178) 119.213 ms 27.778 ms 144.073 ms
8 ae2-10.sgbr4.global-gateway.net.nz (202.50.232.246) 28.512 ms 29.801 ms 144.985 ms
9 google-gsw.sgbr4.global-gateway.net.nz (202.50.237.198) 29.008 ms 132.171 ms 29.510 ms
10 108.170.247.65 28.283 ms 28.180 ms 27.605 ms
11 209.85.242.190 27.815 ms 27.783 ms 27.681 ms
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
Destination not reached
我怀疑我们的本地网络出了问题,但如果我从 GCP 控制台重新启动虚拟机,我们就可以再次访问它。
如果我尝试从我的移动网络访问该网站,它就可以正常工作。任何远程服务器的 SSH 和 ping/curl 也可以正常工作。
不太清楚如何进一步调试它,也不知道可能出了什么问题。
有任何想法吗?
答案1
怪罪sshguard
!
经过进一步调查,我们发现如果办公室的同事尝试使用无效的 SSH 密钥推送到服务器(VM 是 git 服务器)就会出现问题。
进一步的调试和帮助布赖恩斯内登从 Google Cloud Slack 社区我使用以下命令发现了该问题:
sudo /sbin/iptables -L -v -n
Chain INPUT (policy ACCEPT 33560 packets, 35M bytes)
pkts bytes target prot opt in out source destination
72689 68M sshguard all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 32966 packets, 36M bytes)
pkts bytes target prot opt in out source destination
Chain sshguard (1 references)
pkts bytes target prot opt in out source destination
3259 263K DROP all -- * * 123.123.123.123 0.0.0.0/0
您可以看到 IP123.123.123.123
已被删除sshguard
。
解决方案
- 通过运行删除活动块
sudo /sbin/iptables -F sshguard
。 - 将 IP 添加到
/etc/sshguard/whitelist