java ssh 防火墙_如何通过反向SSH隧道绕过防火墙和NAT

我正在尝试在路由器后面的机器中生成SSH服务器 .

首先,我尝试将SSH绑定到我的公共IP地址:

ssh -R 10002:localhost:22

然后我提示密码请求,但我的用户名密码似乎不起作用 .

显然我知道我的用户名密码,所以在我看来它正在尝试在同一网络下的另一台计算机上进行身份验证 .

有任何建议如何解决这个问题?

当您无法访问路由器时,它还可以帮助我了解如何在路由器后面创建SSH服务器 .

iptables中的端口都是开放的 .

UPDATE

正如Thomas Oster回答我所做的那样,我尝试了以下内容 .

在路由器后面的机器中,我执行了以下命令:

$ ssh -R10002:localhost:22 -l

是具有公共IP和SSH服务器的服务器的remote_ip_address,我可以完全控制它 .

是远程服务器用户名 .

之后,我尝试从远程服务器连接到路由器后面的服务器,如下所示:

$ ssh -p 10002

但是,此命令显示以下输出:

ssh: connect to host port 10002: Connection refused

所以我使用以下命令在iptables防火墙中打开了10002端口:

sudo iptables -A INPUT -p tcp --dport 10002 -j ACCEPT

之后,我再次执行了命令,但它显示相同的错误消息 .

在路由器后面的我的机器中,我在iptables中打开了所有端口 .

UPDATE 2

您必须在remove_public_ip_address服务器的/ etc / ssh / sshd_config中允许端口转发

我试图在sshd_config文件中允许portforwarding添加此命令:

LocalForward 10002 :22

但它给了我这个错误信息:

Bad configuration option: LocalForward

“ssh -R ....”之后你是否打开了窗户?

执行该命令后,它连接到远程公共机器,是的,我打开了窗口 .

创建隧道后,可以在公共服务器上使用ssh -p 10002 localhost吗?

是的,如果我在公共服务器中执行该命令,它会在询问我的凭据后连接 .

请在路由器后面的机器上尝试“ssh localhost”,检查sshd是否正在运行 .

这也有效 .

UPDATE 3

我终于能够使它工作了(再次感谢Thomas Oster)

我们将使用三台机器:

目的地机器:我们想要连接到 .

中间机器:充当连接中介的服务器(在我的情况下是Linode)

家用电脑:我们将在何处访问目的地电脑 .

这些是我遵循的步骤

Step 1:

[destination computer]$ vi /etc/ssh/sshd_config

添加GatewayPorts选项:

GatewayPorts是的

重启ssh .

Step 2:

[destination computer]$ ssh -R 4040:localhost:22 middle-machine-user@middle-machine-public-ip

这将通过端口4040将您的公共计算机与目标计算机相关联

它将连接到中间机器并提示终端,您必须打开此选项卡 .

Step 3:

从家里连接:

ssh destination-user@destination-ip -p4040

或者从中间机器连接:

[home computer]$ ssh middle-machine-user@middle-machine-ip

[middle computer]$ ssh destination-user@localhost -p4040

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值