Domain-Name-System
SSH 或 FTP 協議是否告訴伺服器我要連接到哪個域?
在 Bash shell 中使用
ssh
orftp
命令時,我要連接的伺服器是否知道所使用的域名?我了解域名是通過 DNS在本地翻譯成 IP 地址的。在 HTTP 中,發生這種情況後,伺服器也會被告知原始域名,以便提供正確的頁面,或提供正確的 TLS 證書 (SNI)。host serverfault.com GET /
ssh
連接到or時是否會出現類似現象ftp
?我問是因為我試圖通過 ssh 連接到需要域名的伺服器(GoDaddy 虛擬主機),但是當我嘗試通過連接時沒有讓我進入,
user@IPaddress
因為 DNS 尚未移動到 GoDaddy IP 地址。
不,SSH 客戶端不會將您連接到的 DNS 名稱傳遞給伺服器。
正如您所說的那樣,名稱在本地解析為 IP 地址。
看來我對 FTP 的看法是錯誤的。
有關詳細資訊,請參閱其他答案。
SSH/SFTP 協議沒有任何機制將主機提供給伺服器。
有關於將此功能添加到 OpenSSH 的討論,請參閱ssh 的“虛擬主機”。
FTP協議確實有
HOST
命令,相當於HTTPHost
頭。它由相對較新的RFC 7151指定。RFC 於 2014 年 3 月發布(儘管初稿來自 2007 年)。因此,它尚未得到普遍支持。在伺服器端,它受到 IIS(RFC 由 Microsoft 贊助)和ProFTPD(自 1.3.6rc1 起)的支持。其他常見的 Unix FTP 伺服器(如 Pure-FTPd 或 vsftpd)不支持它。
在客戶端,它由*(我的)* WinSCP支持。FileZilla 不支持它,因為它的作者反對這個想法,CyberDuck 也不支持。我不知道其他人。