【问题标题】:Which local port is used for http or ssh protocol?哪个本地端口用于 http 或 ssh 协议?
【发布时间】:2021-01-03 08:08:09
【问题描述】:

当我们使用网络浏览器使用google时,我们在网络浏览器中输入www.google.com。我知道它等于www.google.com:80,因为在http协议中默认端口号是80。

当我们使用ssh将本地PC连接到远程服务器时,我们使用ssh user@remote,等于ssh user@remote -p 22,因为在ssh协议中默认端口号是22。

我的第一个问题是: 默认端口号是 http 中的 80 还是 ssh local 端口或 remote 端口中的 22?

我猜答案是:远程端口。因为如果我们使用 severl ssh 命令将我们的本地 PC 连接到几个不同的远程服务器,默认端口始终是 22。如果我们使用多个网络浏览器进行搜索,默认端口号始终为80。

我的第二个问题是: 如果我们使用 severl ssh 命令将我们的本地 PC 连接到多个不同的远程服务器,那么不同 ssh 会话的 local port number 是什么?如果我们使用多个网络浏览器将我们的本地 PC 连接到 www.google.com,那么不同网络浏览器的 local port number 是什么?

【问题讨论】:

  • 本地端口通常由操作系统为每个连接随机选择。像 Unix 的 netstat 这样的命令可以告诉你正在使用什么。

标签: http ssh network-protocols


【解决方案1】:

22 仅与远程端口有关。

您不能为 SSH 连接指定本地端口,但作为 detailed here,您可以使用 nc(或 netcat)实用程序来充当代理:

ssh -p 33101 -o 'ProxyCommand nc -p 33101 %h %p' $SERVER_2

-o参数允许ssh设置ProxyCommand选项,即:用于连接服务器的命令('%h'将被主机名替换为连接和'%p ' 由港口)。

对于HTTP连接,你可以specify a local port directly using curl

本地端口号通常由网络堆栈随机分配给您的 TCP 连接,您通常不必再考虑太多。

获取此 HTTPS 页面时,要求 curl 使用 4000 到 4200 之间的本地端口号:

curl --local-port 4000-4200 https://example.com/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多