![如果我转发端口 22,我还能 ssh 进入我的服务器吗?](https://linux22.com/image/705439/%E5%A6%82%E6%9E%9C%E6%88%91%E8%BD%AC%E5%8F%91%E7%AB%AF%E5%8F%A3%2022%EF%BC%8C%E6%88%91%E8%BF%98%E8%83%BD%20ssh%20%E8%BF%9B%E5%85%A5%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%97%EF%BC%9F.png)
如果我设置“转发”穿梭巴士作为
myserver:~$ sshuttle -r username@TARGET 0.0.0.0/0
我还能myserver
通过ssh 进入mymachine
吗?我想不能,但我不敢尝试。
或者如果我只转发端口22
myserver:~$ ssh -nNT -L 0.0.0.0:22:localhost:22 TARGET
有没有办法通过 ssh 进入myserver
?或者如果你想这样做,你需要为 ssh 打开额外的端口?
答案1
ssh someserver -R 10022:127.0.0.1:22 -fN
将允许您直接通过端口 22 ssh 连接到您的机器,并通过someserver
端口 10022 连接到您的机器,这将直接将您引导到端口 22 上的服务器。
这是因为守护进程一直在监听它配置的端口,并且它可以维护多个同时的 ssh 会话(当然假设您没有在您的 中限制这一点sshd_config
)。
答案2
再仔细一看,你似乎正试图从服务器“ myserver
”使用这些为客户端设计的工具。我的回答涵盖了在客户端“ ”上使用它们的情况mymachine
。
这个项目的文档sshuttle
看起来相当不正统:甚至怎么运行的文章只告诉它能做什么。它主要通过说明该项目如何不起作用来将其与其他工具进行比较:它不“像” SSH 端口转发,但它也不“像”“愚蠢/复杂的 VPN”也一样。显然作者似乎认为他发明了一些全新的、当然比以前任何人发明的都更好的东西。
- 能代理人
iptables
使用(NAT)或recmsg
(TPROXY)将所有流量发送到另一端 - 不需要远程服务器上的管理员访问权限,但需要客户端计算机上的 root 访问权限
- 两端均使用 Python。
基于此,SSH 到远程端也可能需要代理,但是那不重要,因为你可能ssh
从远程服务器到其自身使用外部 IP 地址;连接从隧道的哪一侧发起并不重要。
我不知道你用替代解决方案想做什么,因为它甚至没有试图实现与第一个解决方案相同的结果。但是,22
除非你是 root 并且还没有sshd
监听,否则你无法绑定到本地端口。即使你成功了,我也看不出这有什么用处。但是,回答这个问题:是的,你仍然可以ssh
(remote:22
+ 本地端口转发)。