本地端口
本地监听端口,并配置转发scoket(ip:port),通过访问本地监听端口访问远程区域目标主机
本地访问外部资源,scoket为远程区域的
远程端口
远程监听端口,并配置转发scoket(ip:port),通过访问远程监听端口访问本地区域目标主机
外部访问本地资源,scoket为本地区域的
动态端口
本地监听端口,通过代理方式所有流量走此端口,流向远端服务端,由服务端将流量进行转发,不需要设置转发的目的socket,
目的为正常访问的地址
远程端口转发
在服务端开放端口,通访问服务端端口向客户端区域的服务发起请求
SSH
-R port:host:port
服务端开启的端口:客户端区域的主机:客户端区域的主机端口
对端端口:本端区域主机:本端区域主机端口
服务端
service ssh start
客户端
ssh -gfNC -R 7000:127.0.0.1:80 root@192.168.1.125 -p 53
在服务端开放7000端口,通过该端口访问客户端区域的1.1.1.100:80
连接
建立连接后,在服务端访问127.0.0.1:7000成功显示客户端的web页面
服务端端口对外开放,通过二次端口转发对外开放
ssh连接自己
ssh -gfNC -L 7001:127.0.0.1:7000 root@192.168.1.125 -p 53
也就是我连我自己
192.168.1.125:7001 --> 192.168.1.125:7000 --> 1.1.1.100:80客户端web
通过ssh连接到服务端,转发到7000端口(第三方主机,可以连接服务端,ip:192.168.1.133)
ssh -gfNC -L 7001:127.0.0.1:7000 root@192.168.1.125 -p 53
访问127.0.0.1:7001
其他主机访问192.168.1.133:700
通过rinetd对外开放7000端口
rinetd -c /etc/rinetd.conf
192.168.1.125 7001 127.0.0.1 7000
访问192.168.1.125:7001
通过手机访问成功,很开心 emmmm
动态端口转发
不进行端口/scoket映射,所有的访问走ssh的代理端口,然后将数据包加密封装,发送到对端,对端解密解封装后按照原来的访问请求进行访问
SSH
-D port
动态端口转发
服务端
service ssh start
客户端
ssh -fgNC -D 7000 root@192.168.1.125 -p 53
在浏览器中设置scoket代理,可以突破防火墙正常访问互联网,服务端可以正常上网
通过proxychains代理进行全部流量转发
x图形协议请求
通过ssh访问一个linux系统,可以调用目标系统的图形界面
SSH
-X
允许通过调用目标系统图形界面
服务端
service ssh start
客户端
ssh -X root@192.168.1.125 -p 53
获得shell,调用图形软件