当 PPTP 未连接时,eth0 未监听端口 80

当 PPTP 未连接时,eth0 未监听端口 80

我在我的云服务器上使用 Ubuntu LTS 20.04。

在我对一些网络相关配置进行修改之前,一切都运行正常。

我的服务器上运行着一个 PPTP VPN 服务器。

现在我遇到了以下问题:我的 nginx 服务器应该在所有接口上监听 80 端口。但是却没有。

当我在服务器中卷曲公共 IP 时,它可以工作。

 curl {my.public.ip}:80 -I  --interface eth0

但是当我从另一台远程计算机运行 curl 时,却没有。

curl {my.public.ip}:80 -I

然后我从笔记本电脑连接到我的 PPTP 服务器。

令人惊讶的是, curl {my.public.ip}:80 -I 现在似乎可以在任何计算机上运行。(无论我运行 curl 的计算机是否连接到 VPN)。但是当我将笔记本电脑与 VPN 断开连接时,eth0 的端口 80 再次关闭。

但此问题不会影响任何其他端口(443、22、21、81、3306 似乎运行正常)

以下是我输入的最新命令(我认为其中一个命令会导致上述问题,但我不确定)

service pptpd restart
sysctl -p
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p 47 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 10.0.0.0/24 -j TCPMSS  --clamp-mss-to-pmtu
iptables -A FORWARD -s 10.0.0.0/24 -d 10.0.0.0/24 -j ACCEPT

现在我无法让我的笔记本电脑进入睡眠状态,因为我的网络服务器将停止在 eth0、端口 80 上监听......

答案1

尝试配置 nginx vhost 来监听服务器的 IP 地址(没有端口 80)并且不监听所有接口。我的意思是,不要使用:

listen 80;

在 nginx 中,尝试使用:

listen server-ip 80;

这样,您的 nginx 服务器仅将端口 80 绑定到特定的 IP 地址,而不是所有接口。

答案2

找到问题了。

现在我仅运行以下命令并且它运行顺利。

service pptpd restart
iptables -I INPUT -p gre -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 10.0.0.0/24 -j ACCEPT

相关内容