内外网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
参数解释:
123456-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~
其他
- ssh配置 生成ssh及查看ssh key
- 参考 ssh远程端口转发、ssh内网穿透连接树莓派