我在 AWS VPC 的私有子网中有一个新服务器。我的 VPC 的公共子网中有一个 NAT 实例,可以正常连接到远程服务器。但是,当我尝试 scp 文件时,一切似乎都挂了。
ryan@sever-in-vpc:~ $ scp -vvvv myfile www1.domain.com:
...
debug2: exec request accepted on channel 0
Sending file modes: C0664 42625 myfile
debug2: channel 0: rcvd ext data 25
myfile 100% 42KB 41.6KB/s 00:00
Sink: C0664 42625 myfile
debug2: channel 0: written 25 to efd 6
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 1
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 1
“...”包括主机密钥检查、身份验证成功,如果需要,我可以提供更多信息。在远程端,我现在在远程服务器的主目录中有“myfile”,大小为 0 字节。“debug1:client_input_channel_req:channel 0 rtype[电子邮件保护]回复 1”消息重复出现,直到我终止 scp 命令。(我让它运行了五分钟……“myfile”只有 42625 字节。)
在我看来,发送方认为它已经发送了所有字节,但接收方尚未将它们写入磁盘。
看起来与问题类似这家伙有,但也没有解决方案。有什么想法我可以研究吗?
答案1
事实证明,这与我在 AWS 中设置 VPC 的方式有关。
MTU 自动发现应该可以工作,但取决于返回 ICMP 流量。事实证明,虽然我们允许 ICMP 通过 AWS 安全组进入我们的私有子网,但我们不允许 ICMP 进入我们的 VPC 网络 ACL。打开它,基于 MTU 的问题就消失了。
因此,除了安全组之外,请务必检查您的 VPC ACL。