SSH Remote Tunnel port



我有3台电脑2台Linux和1台Windows。Windows PC和Linux服务器(A)在同一网络(1)中。linux服务器(B)在另一个网络(2)上。

我想在两个linux服务器之间建立一个SSH隧道,允许Windows PC访问linux服务器(B)的HTTP页面,因此在另一个网络上。

在linux服务器(A)上使用此命令,隧道可以正常工作,但只能在linux本地工作。

ssh -R 8080:localhost:80 linuxa.internet.com

但是从Windows PC我无法访问linux (A)上的8080端口。http://linuxa.local:8080不起作用。

所以我尝试了这两个命令来打开对我的PC的访问,但它也不起作用。

ssh -R 0.0.0.0:8080:localhost:80 linuxa.internet.com
ssh -R ipwindows:8080:localhost:80 linuxa.internet.com

你能帮我吗?

谢谢

从评论中,我得出结论,您可能防火墙有问题。假设您可以从"代理"主机到达隧道。(在本地主机上使用curl,wget,ncat等)。你应该检查是什么阻塞了交通。在大多数情况下,它是一个防火墙。根据您的Linux发行版,您可能有不同的防火墙后端和前端。如果您安装了firewall-cmd命令,则很可能防火墙是一个。

但是在责备防火墙之前,您应该检查端口是否打开/关闭。我更喜欢netcat:

HOST_THAT_SHOULD_HAVE_OPEN_PORT #  nc -l 8080
HOST_THAT_SHOULD_BE_ABLE_TO_CONNECT # nc HOST_THAT_SHOULD_HAVE_OPEN_PORT 8080

如果没有连接或连接被拒绝,很可能是防火墙出了问题。

您可以检查防火墙是否在systemctl下运行:

# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-02-08 21:42:29 CET; 13h ago

那么你可以在8080端口添加流量:

# firewall-cmd --add-port 8080/tcp
success

它将暂时打开8080上的网络流量。然后您应该能够使用端口8080和您的ssh隧道。

谢谢你的回答,但是我想我没有安装防火墙

systemctl status firewalld

返回
Unit firewalld.service could not be found.

firewall-cmd --add-port 8080/tcp
-bash: firewall-cmd: command not found

相关内容

  • 没有找到相关文章

最新更新