Summary
通过公网连接不同的局域网,使其就像同一个局域网内部访问一般。
一些额外参数
1
2
3
4
5
6-f 通常和-N连用,不登录到远程主机,就是后台执行的意思
-N 不执行脚本或命令,通常与-f连用
-g 在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接
-q quiet模式,忽视大部分的警告和诊断信息
-T 禁用tty分配
-n 重定向stdin为/dev/null,用于配合-f后台任务
建立专门的linux账号用户用于端口转发(考虑安全性)
不让该账户执行命令
1
2
3useradd -m tunnel
passwd tunnel
chsh -s /bin/false tunnel
绑定本地端口(-D)(socket5代理)
转发本地端口流量至指定主机
1
ssh -D 8888 user@host
这样所有来到本地8888端口的流量都有发送到host主机,就是远程主机 应用场景:数据过滤,限制指定主机上网,代理,等等.
本地端口转发(-L)
两个不同的局域网通信,对,两台要通信的机器都没有公网ip,只能借助以中间人(拥有公网ip的机制)进行通信.
1
2-L 本地网卡地址:本地端口:目标地址:目标端口
ssh -L 2121:host2:21 user@host3
远程端口转发(-R)
1
2-R 远程网卡地址:远程端口:目标地址:目标端口
ssh -qTfNn -R 4567:localhost:3456 user@remote_host
将目标地址机器的目标端口映射到远程机器的远程端口上
通过不确定的主机去访问确定的主机
场景:反弹式后门瞬间通畅, 在家里连接工作电脑.
这里说明一下,第一个地址是可以忽略的
遇到的一些问题
远程主机的端口监听的是127.0.0.1
解决方法
1
vim /etc/ssh/sshd_config
1
GatewayPorts yes
重试一下ssh连接看.