我在 Google Cloud 上有一个虚拟机用作 VPN 网关。我已按照此文档中的步骤操作https://cloud.google.com/vpc/docs/special-configurations#settingupvpn
我使用的 ipsec.conf 是:
conn cnt
authby=psk
auto=start
dpdaction=hold
esp=3des-sha1
forceencaps=yes
ike=3des-sha1-modp1024
ikelifetime=1440m
keyexchange=ikev1
mobike=no
type=tunnel
left=%any
leftid=x.x.x.x
leftsubnet=10.0.1.0/24
leftauth=psk
leftikeport=4500
right=x.x.x.x
rightsubnet=0.0.0.0/0
rightauth=psk
rightikeport=4500
在我启动 strongswan 服务器之前,一切都运行正常。vpn 连接成功,但一旦成功,ssh 会话就会失败,我无法再次启动它。我使用过浏览器控制台,尝试过从 gc shell 尝试过,尝试过从我的电脑尝试过,但它一直不让我进入。
我收到的错误信息如下:
OpenSSH_7.4p1 Debian-10+deb9u6, OpenSSL 1.0.2r 26 Feb 2019
debug1: Reading configuration data /home/myusername/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "x.x.x.x" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
它在那里停留了几分钟,然后我收到这个错误:
ssh: connect to host x.x.x.x port 22: Connection timed out
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].
我尝试使用另一个 ssh 密钥,删除已经生成的密钥并创建了新的密钥,但没有效果。
我也检查了防火墙,我相信它配置得很好,但我还认为问题就出在那里。
我使用以下命令配置了防火墙:
gcloud compute firewall-rules create ssh --source-ranges 0.0.0.0/0 \
--allow tcp:22 \
--network vpn-network
我也改变了该防火墙规则的优先级,但仍然不起作用。
我也用另一个实例、ips 和区域从头重复了该过程,并且一旦 vpn 建立,ssh 连接就会失败。
我也尝试过增加磁盘大小,但没有成功。
我已经连接到串行控制台,看起来虚拟机中的一切运行正常,并且 VPN 正在按预期运行。
任何帮助都将不胜感激:)
答案1
您可以进行跟踪路由并确认通过端口 22 的网络流量在何处被阻止:
$ traceroute -T -p 22 <IP address>
还请检查您是否在本地站点配置了正确的防火墙规则,以允许网络流量通过端口 22。
如果内部防火墙规则正确,您可以在此处分享跟踪路由结果。