ssh内网穿透笔记

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 [email protected]
# 将云服务器的2222端口收到的信息转发给云服务器的1111端口
# 云服务器上执行
ssh -fCNL *:2222:127.0.0.1:1111 [email protected]
# 测试是否成功
ssh -p 2222 [email protected]

关于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全篇都翻译了一遍,愣是没找到正确的姿势。

你可能感兴趣的:(linux)