Proxy

有多少客戶端 PC 可以通過只有一個公共 IPv4 地址的代理訪問網際網路?

  • November 10, 2022

如果我有一個可以訪問網際網路的靜態公共 IPv4 198.51.100.138 代理伺服器。

區域網路中有多少台客戶端PC可以通過代理伺服器訪問Internet?

這個問題很難有一個完整的答案,因為它不是很正確,或者沒有提供足夠的資訊。我們可以估計有多少連接可以被翻譯。這與 PC 的數量如何對應仍然是一個問題:它們會訪問相同的遠端資源還是不同的遠端資源?他們使用哪種訪問方式(VPN、HTTPS、郵件等)?

通常,當您進行 TCP 和 UDP NAT 時,它們中的每一個都使用一個元組(local IP, local port, remote IP, remote port)來辨識回複數據包,以知道(private IP, port)將它們轉換回哪個。您已固定為 single local IP,但保留了所有其他變數;可以轉換多少個連接是集合中有多少對象的乘積,具有粗略的最大值64k local ports * 64k remote ports * 4G remote IPs(當然,並非所有遠端 IP 都是公共的,我說這是粗略的)。如果您將其限制為僅訪問 TCP 443 (HTTPS) 埠,我們現在也有一個remote port;等等。

因此,您的整個本地網路總共可以為每個遠端 IP 地址上的每個遠端埠打開多達 64k 的 TCP 和 UDP 連接。如果每台 PC 打開一個連接,您可能有多達 64k 台電腦都訪問某個遠端伺服器上的同一個埠,64k 更多台電腦訪問同一遠端伺服器上的其他埠,64k 甚至更多台訪問其他遠端伺服器上的同一埠。請注意,一方面瀏覽器至少打開 6-8 個連接(這會減少結果),另一方面,流行的服務不會駐留在單個遠端 IP 上(這會增加結果)。

同樣的限制也適用於 HTTP 代理:它需要建立傳出連接並且具有相同的限制。代理和 TCP NAT 時間將有一個共享的可用元組池;UDP 保持獨立。

有時還會使用其他協議:SCTP、GRE 等。它們都有其有趣的特性,但它們的限制是它們的。IPSec 還增加了一些有趣的問題,但通常它是按照將 IPSec 封裝到 UDP 中的 NAT-T 使用的,它屬於 UDP 限制。

引用自:https://serverfault.com/questions/1115292