记录一次利用手机使用ssh进行内网穿透从而远程访问内网设备

相关命令参数

  • -L port:host:hostport

将本地端口(port)转发至远程机器端口(hostport),即:监听本地端口,一旦有连接就将本地的连接转发到远程主机端口 (作为正向代理模式)(只有root才能转发特权端口(1024以下的端口))(ipv6使用格式port/host/hostport)

  • -R port:host:hostport

将远程机器端口转发到本地(此时host只能是localhost?),即:在远程主机监听端口,一旦有连接就转发到本地主机端口 (作为反向代理)(root转发特权端口)(ipv6使用格式同上)

  • -f 后台启用
  • -g 允许远程主机连接本地转发端口(默认情况的端口映射至本地端口,远端无法连接)
  • -N 不执行远程命令(仅限协议第二版)(是需要登录滴)
  • -D 动态端口转发(在本地开放sock4代理端口,远程服务器做为代理服务器,作用与应用层如浏览器)
  • -C 数据压缩(用于网络情况不良,使用gzip的压缩算法)
  • -J 设置跳板,跳板机之间逗号隔开端口特殊则在ip后加括号
  • -o 使用配置文件可以设置的参数
    其中,ProxyCommand参数可以搭配ncat使ssh穿过代理
  • -b 多网卡,绑定本地特定ip

反向代理

有一台具有公网或的设备A,一台内网设备B,在A上开启sshd服务器等待B接入,在B上运行ssh反向代理,命令如下

1
ssh -C -f -g -N -R $A_port:127.0.0.1:$B_port $user@$A_ip

此时可以看到A和B完成了ssh连接,在A的端口上可以访问到B的端口