pilipala195

我们必将更加深邃,否则更加复杂。

pilipala195's avatar pilipala195

内外网ssh通信

内外网ssh通信

  • 背景

    妹子要在实验室的服务器上跑程序,由于是内网环境必须在同一网络环境下进行,有时忙到夜里很晚才回来,十分不安全也没必要。因此有了从外网访问内网服务器的需求,这样妹子就可以早早回家跑程序了

  • 环境

    • 一台装有Ubuntu的服务器,ip:1.1.1.1
    • google cloud,ip:2.2.2.2(独立静态ip)
    • 任意可以进行ssh通信的工具
  • 搭建

    实际的原理是通过ssh端口转发实现的。

    • 首先内网连接外网
      ssh -CfnNT -R 2222:localhost:22 user@2.2.2.2

      参数解释:

      1
      2
      3
      4
      5
      6
      -C 压缩数据传输
      -f 将 ssh 转到后台运行,即认证之后,ssh 自动以后台运行。不在输出信息
      -n 将 stdio 重定向到 /dev/null,与 -f 配合使用
      -N 不执行脚本或命令,即通知 sshd 不运行设定的 shell 通常与 -f 连用
      -T 不分配 TTY 只做代理用
      -q 安静模式,不输出 错误/警告 信息
    • 本地连接外网vps
      ssh user@2.2.2.2

      登陆之后,由于之前vps上的2222端口已经在监听内网22端口发来的信息,因此输入

      ssh -p 2222 user@localhost

      其中-p指定ssh通信端口,user指的是内网ssh到外网上的username(大坑),之后若需要密码即为内网服务器的密码。

    • enjoy it~

  • 其他