如何使用 ssh 隧道在公网访问内网的 ssh server?

方法一:反向 SSH 隧道(此方法最简单,但是持久性差)

  1. 在公司内网机器上操作
    • 确保公司内网的 SSH 服务器可以正常访问。
    • 在公司内网的机器上执行命令(假设公网服务器的 IP 为public_ip,SSH端口为22,并且已经在公网服务器上创建了用于反向连接的用户user):
      • ssh -R 2222:localhost:22 user@public_ip。这里的2222是在公网服务器上用于接收连接的端口,可以根据需求修改。
  2. 在公网服务器上操作
    • 当需要从公网访问公司内网 SSH 服务器时,在公网服务器上执行:ssh -p 2222 localhost

方法二:github开源项目 frp (https://github.com/fatedier/frp)

  1. 下载可执行文件

    2.解压
tar -xvzf 文件路径 
  1. 配置Server
    在公网服务器上配置frps.toml文件,一般采用默认的 7000 端口即可
    配置完毕后开始运行(建议配合 tmux 来让frps进程一直在后台运行)
./frps -c frps.toml &  #使用&符号可让进程在后台一直运行

4.配置 Client
在内网设备上,编辑frpc.toml文件,若想开启ssh,则填写信息如下:

配置好后使用命令(同样建议使用tmux来运行以下命令,以持久化)

./frpc -c frpc.toml &

5.连接
此时在公网服务器的 shell 中就可以使用端口 6000 来访问内网的 ssh 了。

ssh -p 6000 root@localhost
posted @ 2025-02-24 17:04  Greg_LYU  阅读(199)  评论(0)    收藏  举报