Skip to content

Latest commit

 

History

History
31 lines (28 loc) · 1.67 KB

内网穿透.md

File metadata and controls

31 lines (28 loc) · 1.67 KB

内网穿透-场景1

  • 局域网M: 有机器A,Linux系统,可访问公网,没公网IP
  • 公网机器: 有机器B,Linux系统,有公网IP或者域名
  • 局域网N: 有机器C,Linux系统,可访问公网,没公网IP

实现的效果,局域网M的机器A通过ssh直接访问机器C

由始至终,都不需要在 公网机器B 执行任何配置命令

步骤一: 机器C直接执行下面命令

# 启用公网服务器 37285 端口转发,下面命令的参数是以后台进程运行,用 ps -ef | grep ssh 命令查看进程的存活
ssh -gfnNTR 37285:localhost:22 公网服务器账号@公网服务器IP -o ServerAliveInterval=300
# 手动输入公网服务器的密码
# 用下面命令查看进程的存活,有时候命令跑了多次,存在多个进程,到时候手动kill掉
ps -ef | grep ssh  

步骤二: 机器A配置

  • 开一个命令行,输入下面命令
# ssh -p 机器B的ssh端口 机器B的登录账号@机器B的公网IP或者域名 -L 0.0.0.0:本地转发的端口:0.0.0.0:机器B的转发端口
ssh -p 22 root@公网服务器IP -L 0.0.0.0:37285:0.0.0.0:37285
# 手动输入公网服务器的密码,然后保持这个命令行窗口开启,如果登录成功后提示端口被占用,ps -ef | grep ssh 命令查出之前的进程,全部kill掉,重新连接
# bind: Address already in use
# channel_setup_fwd_listener_tcpip: cannot listen to port: 37285
  • 新开一个命令行,输入下面命令,输入机器C账号密码,直接登录机器C
ssh -p 37285 root@localhost
# 输入机器C的密码,如果界面卡住了,检测 机器C 和 机器A ,看看之前的命令有没有运行