Dai*_*tsu 0 linux ssh port-forwarding
我有一台安装了 ssh 的服务器机器 (A) 以及一个网络服务器。
如何将带有网络服务器的端口转发到我的本地机器 (B)。
我应该可以浏览到 http://localhost:forwardedport
这是本地端口还是远程端口转发?这是我尝试过的。
ssh -L 8888:name.dnydns-server.com:8888 localhost
ssh -L 8888:localhost:8888 name.dnydns-server.com
and both of those with username@name.dnydns-server.com
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:给出的答案实际上是正确的,并解释了端口转发的用法。结果证明我使用了正确的命令,而是有一个防火墙规则阻止我从服务器本身连接到端口 8888。当我尝试连接到该网站同时 SSH 进入远程服务器时,我发现了这一点。
我想您首先需要弄清楚我将使用的一些术语:
客户端是指您启动 ssh 的机器。这台机器被称为“本地”。
服务器是指您要使用 ssh 连接的机器。这台机器被称为“远程”。
使用 ssh 进行本地端口转发意味着您从客户端连接到服务器,从而打开隧道,以便客户端上的另一个程序可以通过本地端口连接到服务器站点上的主机和端口。选项是 -L local_port:remote_machine:remote_port。
使用 ssh 进行远程端口转发意味着您从客户端连接到服务器,从而打开隧道,以便服务器上的程序可以通过服务器上的端口连接到客户端站点上的主机和端口。选项是 -R remote_port:local_machine:local_port。
如果我理解正确,您需要本地转发,例如创建到您的服务器 name.dnydns-server.com 的连接,然后使用您的本地浏览器连接到 name.dnydns-server.com 上的端口 8888。
您列表中的以下命令实际上应该执行您想要的操作:
ssh -L 8888:localhost:8888 name.dnydns-server.com
Run Code Online (Sandbox Code Playgroud)
第一个 8888 是您的客户端上的端口,您的附加程序(浏览器)可以连接到该端口。
该行中的“localhost”是从隧道的末端看到的,即在服务器 (name.dnydns-server.com) 上。本地主机是机器本身,所以它是你想要的。(您可以在服务器的网络上放置一个不同的名称来访问它)
第二个 8888 是您要连接到服务器站点上的端口。如果您在标准端口 80 上运行网络服务器,则必须将其更改为 80。
name.dnydns-server.com 是您连接到的 ssh 服务器的名称,它是隧道的端点。
我不知道为什么这条线对你不起作用。你退出ssh了吗?它必须始终保持连接才能使隧道正常工作。网络服务器上的默认端口?网络服务器没有运行?
编辑:我更改了“客户端”和“服务器”的定义以澄清事情,因此一些评论不再适用并引用已删除的内容。
| 归档时间: |
|
| 查看次数: |
1591 次 |
| 最近记录: |