当从Bash shell使用ssh
或ftp
命令时,我所连接的服务器是否知道使用的域名? 我知道域名是通过DNS 在本地翻译成IP地址的。 在HTTP中,在发生这种情况之后,服务器也会被告知原始域名,以便提供正确的页面或呈现正确的TLS证书(SNI)。
host serverfault.com GET /
连接到ssh
或ftp
时是否会出现类似现象?
我问,因为我试图ssh到一个服务器(GoDaddy的webhosting)期待一个域名,但不让我在当我尝试通过user@IPaddress
IP地址连接,因为DNS尚未移动到GoDaddy的IP地址。
不,SSH客户端不会将您连接的DNS名称传递给服务器。
正如您所说的那样,名称在本地parsing为IP地址。
看起来我错了FTP。
有关详情,请参阅其他答案。
SSH / SFTP协议没有任何机制将主机提供给服务器。
有关于向OpenSSH添加此function的讨论,请参阅ssh的“虚拟主机” 。
FTP协议具有HOST
命令,这相当于HTTP Host
头。 它是由一个相对较新的RFC 7151指定的。 RFC于2014年3月发布(尽pipe第一稿是从2007年起)。 因此,尚未得到普遍支持。
在服务器端,它由IIS(RFC由Microsoft赞助)和ProFTPD (从1.3.6rc1)支持。 它不受其他常见的Unix FTP服务器如Pure-FTPd或vsftpd的支持。
在客户端,它由(我的) WinSCP支持。 它不被FileZilla支持,因为它的作者反对这个想法 ,也没有被CyberDuck支持。 我不了解别人。