SSH进行端口转发

大前提,windows可以使用freesshd做ssh服务器当一级代理,但是它的端口转发功能有bug,所以还是用linux的ssh吧。
ps:Earthworm虽然简单好用,但是传输的流量是不加密的,已经碰到过好几次反弹回来仍然被安全设备拦截的情况,所以还是老老实实用ssh代理了

ssh自动重拨

安装sshpass,需要gcc编译安装。

#!/bin/bash

while [ '' == '' ]
do
    ssh_d_process_num=`ps aux|grep -E 'ssh \-' |grep -v grep |wc -l`
    ssh_d_port=`netstat -antulp|grep '9701'|wc -l`
    #echo 'ssh_d_process_num:'$ssh_d_process_num
    if [ "$ssh_d_process_num" == "0" -o "$ssh_d_port" == "0" ]; then
    #   echo 'ssh -d terminaled'
        sshpass -p "password" ssh -fnCNT -R 0.0.0.0:9702:127.0.0.1:22 root@192.168.99.7 -p 9701 &
    #else
    #   echo 'ssh -d running'
    fi

    sleep 300
done

ssh保持在线

ssh会话会在空闲一段时间后自动僵死,但是要注意进程连接仍在。虽然客户端也可以设置心跳检测,但在服务端设置更方便。
修改/etc/ssh/sshd_config

ClientAliveInterval 30#意思是每个30秒发送一次心跳请求
ClientAliveCountMax 6#超过6次心跳失败则自动终止连接

ssh

  • 需要 root 权限,不然会提示权限错误:Privileged ports can only be forwarded by root
  • 不能使用 VPS (sshd server) 已占用的 22 端口,用作端口转发。选用 未使用 端口,比如 2222
    否则就杯具了:Warning: remote port forwarding failed for listen port 22

本地转发

p参数表示ssh的端口
ssh命令
ssh -fCN -L 127.0.0.1:1234:192.168.99.125:3389 root@192.168.99.199 -p 53
plink.exe命令
plink.exe -v -C -N -L 127.0.0.1:8888:127.0.0.1:3389 test@117.28.112.73 -P 9398 -pw password
直接访问本机开启监听的1234端口,其实等于通过远程主机192.168.99.199来访问远程主机192.168.99.125上的3389端口

-n 将 stdio 重定向到 /dev/null,与 -f 配合使用
-T 不分配 TTY 只做代理用
-q 安静模式,不输出 错误/警告 信息
-f 后台连接
-N 连接后不取得shell
-C 启动压缩,加快速度
(如不理解参数可以去掉他们看效果)
-L 1234为建立隧道后本地监听的端口,192.168.99.125是隧道出口转发到的目标地址(即xp靶机),3389是目标端口,root@192.168.99.199是建立隧道的另一方,即rolling版登录的账号和ip,-p 53是rolling版的监听端口。

远程转发

ssh -fCN -R 0.0.0.0:9999:192.168.1.1:80 root@test.com

0.0.0.0表示vps上监听所有地址。
直接访问远程主机上开启监听的9999端口就相当于通过本机来访问192.168.1.1上的80端口。

其中有个大坑
bind_address 参数默认值为空,等价于

*:port:host:hostport

并不意味着任何机器,都可以通过 VPS 来访问 内网 机器。建立连接后,只能在 VPS ( sshd server ) 本地 访问 「内网」 机器。要在办公网的笔记本上通过 VPS 映射的端口来访问 内网 机器,需要修改vps上的/etc/ssh/sshd_config文件,启用 VPS sshd 的 GatewayPorts 参数,set to yes or clientspecified,允许任意请求地址,通过转发的端口访问内网机器。

动态映射

-D socks代理,不多解释了。
-g 监听所有地址,允许其他主机连接。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有待整理 SSH协议 通过公钥加密技术实现服务器身份验证。 安全的隧道SSH会自动加密和解密所有SSh客户端与服务...
    极客圈阅读 3,575评论 0 0
  • 实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中...
    hopevow阅读 1,066评论 0 9
  •   本文将介绍两种应用场景的SSH端口转发,分别是SSH本地转发以及SSH远程转发。 简介   SSH(Secur...
    KingFighting阅读 1,520评论 0 5
  • 第一部分 概述当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室...
    fastjrun阅读 1,186评论 0 8
  • 现在什么对我最重要?现在能够挣足够多的钱让生活能保持下去,不让金钱对生活造成额外的负担。让自己能在曰常生活中保持最...
    梅启林阅读 222评论 0 0