我的問題涉及ssh
、sftp
、scp
、rsync
等命令,您可以在這些命令中連接到另一台計算機,該計算機可以位於您的區域網路(LAN) 中,也可以位於您通常透過廣域網路(WAN) 或更大的互聯網連接的某個遠端位置。
例如,如果您要使用這兩個命令中的每一個,
ssh [email protected]
ssh [email protected]
即分別連接到遠端電腦或 LAN 計算機,如果您位於同一 LAN 中,實際連線路徑是否會改變?注意 publicIP.com 表示適用於主機和執行此命令的機器的 IP 位址或網域名稱。
舉個例子,想想您在家中有兩台機器透過同一路由器連接到網路的情況。我希望第二個命令從 發送資料machine1-->router-->machine2
。第一個命令是否執行相同的操作或確實執行此操作machine1-->router-->some remote path-->router-->machine2
?在第二種情況下,這會影響您的 ISP 監控和限制的頻寬嗎?
答案1
首先,您的路由器不只是一個路由器,它還是一個乙太網路交換器、一個 DHCP 伺服器、一個 wifi 熱點、一個數據機…
第二,它應該以最佳方式路由:如果在同一子網路 192.168.0.x 上,那麼它將由機器路由,而不是透過路由器(不是路由器的路由器部分,只是乙太網路交換器)。
當您使用網域名稱時會發生什麼,例如publicIP.com
- 首先尋找名稱:這可以使用
/etc/hosts
、bonjour/avahi、DNS 或其他解析器來完成。 (此步驟可能涉及詢問公共 DNS 伺服器,因此需要一些公共流量。但它會快取幾分鐘。) - 然後它嘗試連接到該 IP 位址。
例如,如果我們這樣做且 DNS記錄為,則 DNS 查找將會傳回。然後 ssh 進行連接,因此路由與您指定的相同。ssh [email protected]
A
publicIP.com
192.168.0.100
192.168.0.100
ssh [email protected]
192.168.0.100
關於http的註釋
在http中,原始名稱也會傳遞到伺服器(建立連線後),這有時用於區分要連接到哪個虛擬伺服器(在相同的IP位址)。