我有一个 Ubuntu 16.04 GCloud Compute Engine 实例。我使用8085
该实例的端口时没有出现任何问题,直到有一天我停止了该实例然后重新启动它,现在我无法访问端口 8085 上的任何东西。
我尝试过的东西:
- 我 ping 了我的实例的外部 IP(静态),发现有流量。
- 我检查了 VPC 防火墙规则,发现端口 8085 处于活动状态,并且标签已应用于该实例。
- 我创建了一个简单的服务器,每当我访问端口时它都会返回 hello world
80
,并且会有响应,但是当我将监听端口更改为 时则不会有响应8085
。
有没有办法检查流量是否通过 gcloud 防火墙但由于某种原因被 ubuntu 阻止?
这是我当前的iptables -L
输出:
Chain INPUT (policy ACCEPT)
target prot opt source destination
sshguard all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain sshguard (1 references)
target prot opt source destination
答案1
tcpdump
您可以在虚拟机以及尝试连接的客户端计算机上使用。通过比较输出,您可以知道数据包是否在某处被丢弃。
运行时,tcpdump
请确保不要在输出中包含与虚拟机的 ssh 连接,因为这会使输出非常嘈杂。在虚拟机上,我将运行以下代码:
tcpdump -pni eth0 '! port 22'
测试虚拟机的连接性时,请确保从不同的网络进行测试,以防您进行测试的网络恰好丢失流量。(如果您的问题包含 IP 地址,我可能会为您测试。)