标签: ssh-tunnel

如何使 SSH 隧道可公开访问?

回到这个问题,我正在通过 OpenSSH (Client: Mac OS X 10.6 | Server: Linux Mint) 执行以下操作,但是被隧道连接的端口没有公开工作:

ssh -R 8080:localhost:80 -N root@example.com
Run Code Online (Sandbox Code Playgroud)
  • 目的是可以在远程计算机上打开本地端口
  • 似乎远程端只绑定在localhost,而不是所有接口上
  • localhost在远程计算机上打开端口时它可以工作,但是当尝试从我的本地计算机访问远程计算机的公共 IP 时,该端口似乎没有打开

我如何在 IP 上公开隧道供任何人访问?

ssh openssh ssh-tunnel

225
推荐指数
5
解决办法
17万
查看次数

列出打开的 SSH 隧道

我在我的 linux 机器上使用了很多到各种服务器的 SSH 隧道(用于连接到数据库、Web 服务器等),通过 shell 脚本查看当前打开的隧道列表会非常方便。

我可以通过 netstat 上的 grep 识别本地连接:

netstat -n --protocol inet | grep ':22'
Run Code Online (Sandbox Code Playgroud)

但这不会向我显示它连接到的远程端口(显然包括没有隧道的标准 SSH 连接)

更新:答案很好,但没有显示我连接的远程端口。例如,我经常有一条通向 mysql 的隧道,比如 localhost:3308 映射到服务器上的 :3306。通常我可以通过我选择的本地端口来猜测,但同时访问这两个端口会很好。

有任何想法吗?

ssh shell ssh-tunnel

90
推荐指数
5
解决办法
20万
查看次数

ssh -L 到 -D 之间的差异

我试图了解 ssh -L 到 -D 之间的差异。除了 -D 仅是 SOCKS 之外还有什么吗?

谢谢!

ssh port-forwarding ssh-tunnel

61
推荐指数
2
解决办法
6万
查看次数

来自 Windows 的自动 SSH 隧道

我正在尝试将 Windows 计算机设置为始终有两个 SSH 隧道连接到我的 Linux 服务器。

目前,我正在使用 PuTTY 打开两个 SSH 隧道:我在 PuTTY 中登录到服务器,将其最小化,并且从不碰它。这很有效,除非 SSH 连接断开:PuTTY 显示错误消息,我需要手动关闭错误并重新连接到服务器。

我想要做的是有一个应用程序可以设置两个 SSH 隧道,并且可以自动重新连接,而无需手动执行任何操作,包括输入密码。我通过两条隧道发送的数据是 VNC 连接,所以我通常不会在机器前清除错误和输入密码。这两条隧道是一条本地隧道,一条远程隧道。

(是的,我知道自动登录到 SSH 的危害。我计划创建一个没有特权且不允许交互登录的专用用户,并使用它。)

我确实发现了这个问题:如何可靠地保持 SSH 隧道打开?,但那是使用 Linux 作为 SSH 客户端,而我使用的是 Windows。

windows ssh ssh-tunnel

42
推荐指数
4
解决办法
8万
查看次数

SSH 访问 NAT 路由器后面的办公室主机

我想从家里访问我办公室 linux 主机的 ssh 端口。不幸的是,主机位于 NAT 路由器后面。因此,IP 地址不是公开可用的。然而,可以访问另一个互联网主机(服务器),不幸的是,它只是非 root 访问。经过一段时间的搜索,我没有找到合适的解决方案。

以下设置:

  • 位于 NAT(IP 非公共)之后的办公室 PC(linux,root 访问权限),但可以完全访问 Internet。
  • 服务器 PC(Linux,无根访问权限)静态和公共 IP 以及完整的 Internet 访问权限。
  • Home PC (linux, root access) behind NAT (IP not public) but full Internet access.

Possible connections: Office PC --> Server <-- Home PC

Not possible: Office PC <-X- Server -X-> Home PC

Neither the Home PC, nor the Server can initiate access to the Office PC. But both the Office PC and the Home PC can initiate …

linux firewall ssh nat ssh-tunnel

41
推荐指数
1
解决办法
4万
查看次数

SSH反向袜子隧道

ssh -D 可以在本地机器上创建一个socks端口,将流量传递到远程,然后到其他地方。

ssh -L port:host:hostport, 在本地机器上监听端口,从远程机器的角度将流量传递给“host:hostport”。

ssh -R port:host:hostport是 的对应物ssh -L,它在远程机器上监听端口,并从本地机器的角度将流量传递给“host:hostport”。

但是什么是对应的ssh -D,即如何在远程机器上打开一个socks端口,它将流量传递到本地,然后到其他地方?

networking ssh tunnel ssh-tunnel socks

32
推荐指数
3
解决办法
4万
查看次数

SSH 通过多个主机作为socks 代理

可以通过 SSH 实现以下功能吗?

涉及到三台机器:

A. My local machine at home
B. The SSH gateway server at school
C. A workstation in a lab, only reachable through B
Run Code Online (Sandbox Code Playgroud)

我想设置一个 SOCKS 代理。我希望能够在家里的本地计算机上冲浪,就像我在实验室一样。这是由于某些站点只能从学校的公共 IP 访问。

所以我想在主机 C 上运行一个 SOCKS 代理。但我没有设法让它在主机 A 上工作。

我连接到网关,然后从网关连接到工作站。但是我无法让网关正确地将流量从代理传输到代理。

我怎样才能做到这一点?

ssh proxy socks-proxy ssh-tunnel socks

27
推荐指数
1
解决办法
2万
查看次数

SSH 隧道或连接的安全性如何?

我经常建议人们使用 SSH 隧道来保护他们在开放 WIFI 或其他不安全情况下的浏览。
最近,在我建议使用 SSH 隧道后,一位朋友问我 SSH 隧道的安全性如何。我绊了一下并重申了“它的安全性”。

尽管他对这个答案很满意,但还是让我有点无法完全回答。
所以问题出来给你们:

“SSH 隧道有多安全?”

security ssh internet-security ssh-tunnel

26
推荐指数
2
解决办法
4万
查看次数

如何通过中间服务器 SCP 文件?

我在 WinXP 上使用 Ccygwin(使用 bash shell)。我想将一个文件从我的本地主机 SCP 到远程机器——host2。但是,我只能通过 SSH 连接到中间机器——host1,然后从那里通过 SSH 连接到 host2。(注意,我无法从本地主机访问 host2)。

我以为隧道是我的答案,但是当我尝试建立隧道时

ssh -L 9999:localhost:9998 dalvarado@host1 'ssh -L 9998:localhost:1234 -N dalvarado@host2'
Run Code Online (Sandbox Code Playgroud)

但是在输入这个命令并按回车后,系统就挂了。设置隧道然后SCP文件的正确方法是什么?

谢谢, -

ssh scp ssh-tunnel

20
推荐指数
4
解决办法
5万
查看次数

使用 id_rsa 通过隧道设置 ssh 配置文件

我一直在努力设置一个有效的配置来打开与第二台机器的连接,通过另一台机器,并使用 id_rsa(它要求我输入密码)连接到第三台机器。

我在另一个论坛上问过这个问题,但我没有收到可以认为非常有帮助的答案。

这个问题,更好地描述,如下:

Local machine: user1@localhost
Intermediary machine: user1@inter
Remote target: user2@final
Run Code Online (Sandbox Code Playgroud)

我可以使用伪 tty 完成整个连接:

ssh -t inter ssh user2@final
Run Code Online (Sandbox Code Playgroud)

(这将询问我在机器“inter”中的 id_rsa 文件的密码)

但是,为了加快速度,我想设置我的 .ssh/config 文件,以便我可以使用以下命令简单地连接到机器“final”:

ssh final
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所拥有的 - 不起作用 - 在我的 .ssh/config 文件中:

Host inter
    User user1
    HostName inter.com
    IdentityFile ~/.ssh/id_rsa

Host final
    User user2
    HostName final.com
    IdentityFile ~/.ssh/id_rsa_2
    ProxyCommand ssh inter nc %h %p
Run Code Online (Sandbox Code Playgroud)

id_rsa 文件用于连接到中间机器(这不需要我输入密码),而 id_rsa_2 文件用于连接到机器“final”(这个需要密码)。

我试过混合一些LocalForward和/或RemoteForward字段,并将 id_rsa 文件放在第一台和第二台机器上,但我似乎无法在没有任何配置的情况下成功。

PS:我试图从以下方面获得一些帮助的线程:

http://www.linuxquestions.org/questions/linux-general-1/proxycommand-on-ssh-config-file-4175433750/

linux ssh rsa ssh-tunnel

19
推荐指数
1
解决办法
2万
查看次数