ssh内网穿透笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ontheway0101/article/details/81977114

ssh内网穿透笔记

环境

  • 一台拥有公网ip的云服务器
    • OS : CentOS 7
    • IP : 111.111.111.111 (假设这就是我的公网IP)
    • User : root
  • 我的办公电脑
    • OS : Ubuntu 18.04
    • User : zhang

注意事项

  • ssh闲置一段时间之后会自动断开
  • 云服务器端口需要自行开启

搭建过程

# 将办公电脑的22端口映射到云服务器的1111端口
# 在办公电脑上执行
ssh -fNR 1111:127.0.0.1:22 root@111.111.111.111
# 将云服务器的2222端口收到的信息转发给云服务器的1111端口
# 云服务器上执行
ssh -fCNL *:2222:127.0.0.1:1111 root@111.111.111.111
# 测试是否成功
ssh -p 2222 zhang@111.111.111.111

关于ssh闲置一段时间之后会自动断开这个问题,博主采用的方式是在办公电脑上设置每分钟发送一次数据包来维持ssh连接。
在 /etc/ssh/ssh_config 下添加 ServerAliveInterval 60

ssh 参数详情(本次使用到的)

-f 后台运行

-N 不执行远程命令,只用于端口转发,如果后台执行不添加此参数会报错,错误如下:
Cannot fork into background without a command to execute.

-C 请求压缩所有数据

-R port:host:hostport user@host 非本地起端口映射到一台主机
例如 1111:127.0.0.1:22 [email protected]
将云服务器上的1111端口映射到本地的22端口

-L *:port:host:hostport root@host 本地起端口转发到一台主机
例如 *:2222:127.0.0.1:1111 [email protected]
将云服务器的2222端口转发到本地的1111端口

-p port 指定ssh访问的端口

参考资料:
SSH 使用及-L -R -D简介
man手册

ps : 真是不知道大神们是怎么根据man手册学会的-R与-L的使用方式,我用google翻译把man ssh全篇都翻译了一遍,愣是没找到正确的姿势。

猜你喜欢

转载自blog.csdn.net/Ontheway0101/article/details/81977114