127.0.0.1 和 127.0.0.2 上的第 N 个端口是否相同?

网络工程 linux ssh 隧道
2021-07-25 01:38:33

我想在 2 个客户端和 1 个服务器之间创建 ssh 隧道。我可以为两者使用相同的端口号,但将其中一个绑定到 127.0.0.1:N ,另一个绑定到 127.0.0.2:N 吗?这些端口是相同的还是我可以单独使用它们?

3个回答

我可以为两者使用相同的端口号,但将其中一个绑定到 127.0.0.1:N ,另一个绑定到 127.0.0.2:N 吗?

是的,您可以在两个不同的 127.XXX 地址上使用相同的端口号。

这些端口是相同的还是我可以单独使用它们?

您可以单独使用它们。

见下图。

lab@ubu10:~$ nc -l 127.0.0.1 2000 &
[1] 1035
lab@ubu10:~$ nc -l 127.0.0.2 2000 &
[2] 1036
lab@ubu10:~$ netstat -l -n
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.2:2000          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:2000          0.0.0.0:*               LISTEN

无论您是这两个客户端之间通过服务器,或从每个客户端隧道掘进这不是你的问题明确服务器。

在客户端的任何一种情况下,您都可以在本地绑定到双方的相同 IP/端口,例如:

ssh -f client@server.com -L 2000:server.com:22 -N

这将127.0.0.1:2000在每个客户端上映射到在服务器上终止的隧道。

在服务器端,您只会看到每个客户端的公共 IP 地址,这些地址(可能)将唯一的源 IP 绑定到唯一的源端口。

如果绑定到 port+ip,则可以单独使用它们。