具有局域网的 Iptables 不允许在外部域上使用 curl

具有局域网的 Iptables 不允许在外部域上使用 curl

让我们解释一下我的问题:

我的 ESXi 上有一个包含 5 台虚拟机的虚拟网络:

充当防火墙的主虚拟机 VM02 是 Web 服务器和数据库服务器 VM03 是云服务器 VM04 是 gitlab 服务器 VM05 是我安装一些 node.js 应用程序的服务器

VM02 是主 Web 服务器,当它收到基于子域的任何 http/https 请求时,它会重定向到其他 VM。

编辑:: 对我的 git.domaine_name.fr 的请求在局域网中重定向到我的 VM02 apache 服务器,该服务器位于 10.10.19.98,使用 virtualHost 和 proxyPass 重定向到 10.10.19.100,这是我的 gitlab 虚拟机,gitlab 监听端口 80。

问题是,现在我想在 VM02 上安装 gitlab runner 来部署此网络的主网站。但是,当我将 gitlab runner 注册到我的 gitlab 服务器时,出现了错误:

ERROR: Registering runner... failed                 runner=3FcdT7By status=couldn't execute POST against https://git.domain.fr:443/api/v4/runners: Post https://git.domain.fr:443/api/v4/runners: dial tcp ipv4_external_ip:443: getsockopt: connection refused
PANIC: Failed to register this runner. Perhaps you are having network problems

看到这个错误,我认为我的防火墙虚拟机上的防火墙有问题。

确实,我的外部网址上有卷曲:https://git.domain.fr/还返回错误:连接被拒绝

我不知道什么地方可能出了问题:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -t nat -A POSTROUTING -s 10.10.19.96/27 -o ens160 -j MASQUERADE
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ens192 -j ACCEPT
iptables -A INPUT -i ens160 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ens192 -o ens160 -j ACCEPT
iptables -A FORWARD -i ens160 -o ens192 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ens160 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i ens160 -o ens192 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i ens160 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.19.98:80
iptables -A INPUT -i ens160 -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i ens160 -o ens192 -p tcp -m tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -i ens160 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.10.19.98:443
iptables -A INPUT -i ens160 -p tcp -m tcp --dport 9600 -j ACCEPT
exit 0

我错过了什么样的规则?

我的主 Web 服务器(apache)配置是否也存在问题?

编辑:: 更多信息

curl https://www.google.com/

工作正常

curl https://subdomain.domain.fr/

无论我的子域名是什么,使用我的域名,返回端口 443:连接被拒绝

curl http://10.10.19.100/

从我的 gitlab 返回响应,但由于 gitlab 配置为在 dns 上,因此无法正常工作。我在防火墙 VM 和 Web 服务器 VM 上都进行了这些测试,结果都相同。

相关内容