我想在 2 个客户端和 1 个服务器之间创建 ssh 隧道。我可以为两者使用相同的端口号,但将其中一个绑定到 127.0.0.1:N ,另一个绑定到 127.0.0.2:N 吗?这些端口是相同的还是我可以单独使用它们?
127.0.0.1 和 127.0.0.2 上的第 N 个端口是否相同?
网络工程
linux
ssh
隧道
2021-07-25 01:38:33
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,则可以单独使用它们。