Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
我在家中有一台服务器,在VPS主机上有一台服务器。我试图在它们之间创建L2TP / IPsec隧道。隧道正常工作,一台服务器可以从另一台服务器访问HTTP服务(VPS服务器是客户端,而家用服务器是我要连接到的VPN服务器,并运行我想从VPS服务器访问的HTTP和HTTPS服务)。但是,当我尝试通过HTTPS连接时,该连接不起作用。

当我从通过L2TP / IPsec连接到另一台的远程服务器上运行此命令时,将发生以下情况:openssl s_client -connect SERVER:443:

CONNECTED(00000003)


如果我尝试wget --verbose https://SERVER/

Resolving SERVER (SERVER)... SERVERIP
Connecting to SERVER (SERVER)|SERVERIP|:443... connected.


这样就开始了连接,但是没有数据交换。我已经使用nmap进行了测试,并且该端口被检测为开放。

我尝试通过笔记本电脑连接到此VPN,从那里可以访问HTTP和HTTPS服务,但是从该服务器只能使用HTTP。我尝试关闭所有在数据包路径上的防火墙,但问题仍然存在。

我知道这是一个非常特殊的情况,因此,如果对问题可能没有任何实际答案,我至少正在寻找有关如何调试它的指导,因为wget,curl和openssl s_clinent不会向我提供任何详细信息,因为保持连接建立状态。

更新:我已经在家庭服务器上的NAT上打开了443端口,并尝试直接从没有VPN的VPS服务器连接到HTTPS服务,并且该服务器正常工作。因此,仅当我通过VPN访问HTTPS时,连接才起作用。

最佳答案

问题是L2TP连接的MTU设置。我不得不将MTU降低到1300,因为HTTPS + IPSec增加了太多的开销,以至于数据包超过1500,这是以太网和SSL软件包在第3层上设置DF(请勿分片)标志的上限,该标志禁用了软件包分片。

通常,服务器会发送特殊的ICMP消息来通知VPN服务器有关此问题的信息,但我的ICMP被防火墙阻止了,因此没有错误,只是连接无法建立,因为程序包太大而被丢弃了。

关于ssl - 无法通过VPN连接到服务器上的HTTPS ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48417248/

10-09 06:19
查看更多