Summary
通过公网连接不同的局域网,使其就像同一个局域网内部访问一般。
一些额外参数
1 | -f 通常和-N连用,不登录到远程主机,就是后台执行的意思 |
建立专门的linux账号用户用于端口转发(考虑安全性)
不让该账户执行命令
1 | useradd -m tunnel |
绑定本地端口(-D)(socket5代理)
转发本地端口流量至指定主机
1 | ssh -D 8888 user@host |
这样所有来到本地8888端口的流量都有发送到host主机,就是远程主机 应用场景:数据过滤,限制指定主机上网,代理,等等.
本地端口转发(-L)
两个不同的局域网通信,对,两台要通信的机器都没有公网ip,只能借助以中间人(拥有公网ip的机制)进行通信.
1 | -L 本地网卡地址:本地端口:目标地址:目标端口 |
访问本地2121 就相当于访问host2的21端口 对于确定的两个内网环境,这是一个挺不错的选择.
远程端口转发(-R)
1 | -R 远程网卡地址:远程端口:目标地址:目标端口 |
将目标地址机器的目标端口映射到远程机器的远程端口上
通过不确定的主机去访问确定的主机
场景:反弹式后门瞬间通畅, 在家里连接工作电脑.
这里说明一下,第一个地址是可以忽略的
遇到的一些问题
远程主机的端口监听的是127.0.0.1
解决方法
1 | vim /etc/ssh/sshd_config |
1 | GatewayPorts yes |
找到GatewayPorts这个选项,并改为yes,默认是注释的. 然后重启sshd服务
重试一下ssh连接看.













