TLDR;我在 GCE vm 上运行 gitlab。有时 vm 会停止接受流量,就好像有外部防火墙在起作用一样。重置 vm 可以解决问题。我可以使用 google 的工具通过 ssh 进入。从内部看,一切正常。
我的问题:我该如何阻止这种情况?
较长版本
我有一个 GCE 实例,正在运行 gitlab(9.5.1-ee)。
lsb_release -a
=>
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
我 ssh 进入实例并:
sudo tail -f /var/log/gitlab/nginx/gitlab_access.log
通过浏览器访问我的实例很顺利,并且以通常的方式登录。通过 SSH 进入虚拟机并执行 curl 也按预期工作。
现在说说奇怪的部分。我已经思考这个问题有一段时间了。
偶尔,gitlab 实例会停止工作。我无法使用 git pull/push。我无法在浏览器中访问 Web 应用程序。当我像以前一样跟踪访问日志时,尝试从外部访问实例(通过浏览器或其他方式)时没有获得任何新信息,但从虚拟机内部执行 curl 时效果相同。
就好像有一道防火墙挡住了路。其实不应该有。
然后我重置了虚拟机,一段时间内一切都运行正常。然后它又坏了。
这看起来像是 Google 基础设施问题,但我在日志中找不到任何内容。
任何帮助将不胜感激。
更新
我始终可以从虚拟机内部 ping 我的 gitlab 域,但当它出现故障时我无法 ping 它。这绝对不是 DNS 的问题。
我认为我可以通过执行跟踪路由来查看流量停止的位置,并且无论是上行还是下行,其行为都基本相同。例如:
1 192.168.12.1 10.350ms 2.163ms 4.095ms
2 196.41.120.41 51.029ms 14.084ms 5.177ms
3 196.41.120.37 34.846ms 38.931ms 3.306ms
4 196.41.97.74 11.717ms 7.113ms 5.196ms
5 74.125.146.178 7.322ms 18.239ms 8.329ms
6 66.249.95.8 209.010ms 203.518ms 176.016ms
7 64.233.175.113 174.606ms 167.839ms 166.019ms
8 209.85.252.120 174.138ms 169.820ms 173.657ms
9 108.170.234.139 196.385ms 169.107ms 168.493ms
10 * * *
我看不出那里有什么有用的模式。
此外,这个问题是上周随机发生的。没有人碰过虚拟机。在出现奇怪的问题后,我运行了一些更新,但什么也没解决。
据我所知,支持我的虚拟机的基础设施出了问题。就好像有一个防火墙偶尔会弹出来,只是为了好玩,然后在我重置后就消失了。
真的被难住了。能得到一些帮助就好了
更新 2
ufw status
告诉我防火墙已禁用。总是这样。所以虚拟机的内部防火墙也不是神奇地自行打开和关闭。据我所知,流量根本无法到达虚拟机。
更新 3
当 gitlab 没有响应时,从我的本地机器使用 nmap:
nmap -Pn x.x.x.x
Starting Nmap 7.01 ( https://nmap.org ) at 2017-08-30 12:40 SAST
...
Stats: 0:02:48 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 83.50% done; ETC: 12:44 (0:00:33 remaining)
Nmap scan report for x.x.x.x.bc.googleusercontent.com (35.187.189.117)
Host is up.
All 1000 scanned ports on x.x.x.x.bc.googleusercontent.com (x.x.x.x) are filtered
Nmap done: 1 IP address (1 host up) scanned in 201.62 seconds
当 gitlab 响应时:
Starting Nmap 7.01 ( https://nmap.org ) at 2017-08-30 12:47 SAST
Nmap scan report for x.x.x.x.bc.googleusercontent.com (x.x.x.x)
Host is up (0.26s latency).
Not shown: 994 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
3389/tcp closed ms-wbt-server
4567/tcp open tram
8080/tcp closed http-proxy
并且从 VM 来看,无论 gitlab 是否响应,nmap 输出都是相同的:
Starting Nmap 7.40 ( https://nmap.org ) at 2017-08-30 10:48 UTC
Nmap scan report for x.x.x.x.bc.googleusercontent.com (x.x.x.x)
Host is up (0.00069s latency).
Not shown: 994 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
3389/tcp closed ms-wbt-server
4567/tcp open tram
8080/tcp closed http-proxy
Device type: general purpose|specialized|WAP|PBX|phone|media device
Running (JUST GUESSING): Linux 3.X|4.X (89%), Crestron 2-Series (88%), Asus embedded (88%), Vodavi embedded (88%), Google Android 5.X (86%)
OS CPE: cpe:/o:linux:linux_kernel:3.2 cpe:/o:linux:linux_kernel:4.2 cpe:/o:crestron:2_series cpe:/h:asus:rt-n56u cpe:/o:linux:linux_kernel:3.4 cpe:/h:vodavi:xts-ip cpe:/o:google:android:5 cpe:/o:linux:linux_kernel:3.x
Aggressive OS guesses: Linux 3.2 (89%), Linux 4.2 (89%), Crestron XPanel control system (88%), ASUS RT-N56U WAP (Linux 3.4) (88%), Linux 3.16 (88%), Vodavi XTS-IP PBX (88%), Android 5.0 - 5.1 (86%), Android 5.1 (86%), Linux 3.13 (86%), Linux 3.2 - 3.10 (86%)
No exact OS matches for host (test conditions non-ideal).
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 24.30 seconds
答案1
那是 SshGuard。不知道为什么它判定我的本地网络 IP 是恶意的,但无论如何。这只是重新配置的问题。