大家好,欧博又见面了,我是你们的朋友全栈君。 前言:开发机器IP固定,路由上有限制,不通直连。是个很郁闷的事。有个时间在网上看到的ssh代理转发。命令功能很强大。在这我就对自己了解的画了个间图方便大家理解。 本地转发、正向隧道正向代理转发 “本机”连上“ssh服务器”,皇冠然后把”ssh服务器”能访问的机器地址和端口(当然也包括“ssh服务器”自己)镜像到”本机”的端口上。 命令: ssh -L [客户端IP或省略]:[客户端端口]:[服务器侧能访问的IP]:[服务器侧能访问的IP的端口] [登陆服务器的用户名@服务器IP] -p [服务器ssh服务端口(默认22)] 其中,客户端IP可以省略,省略的话就是127.0.0.1了,也就是说只能在客户端本地访问。服务器IP都可以用域名来代替。 举例说明: 本地IP192.168.1.2,DG游戏你可以ssh到某台服务器8.8.8.8,8.8.8.8可以访问8.8.4.4,你内网里还有一台机器(192.168.1.88)可以访问你。 如果你想让内网里的另外一台电脑访问8.8.4.4的80端口的http服务,那么可以执行: ssh -CfNg -L 192.168.1.2:8080:8.8.4.4:80 test@8.8.8.8 C表示压缩数据传输 f表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用. N表示不执行脚本或命令 g表示允许远程主机连接转发端口 也就是说,欧博注册ssh到8.8.8.8上,然后让8.8.8.8把8.8.4.4的80端口映射到本地的8080端口上,而且和本地192.168.1.2这个IP绑定。 内网里的另外一台机器可以通过IE浏览器中输入:8080查看8.8.4.4的网页 反向隧道—-隧道监听远程port,突破防火墙提供服务反向代理 本机”连上“ssh服务器”,欧博代理然后把“本机”能访问的机器地址和端口(也包括”本机”自己)镜像到“ssh服务器”的端口上。 反向连接用得可能更多一些。比如你的客户端在内网,在外网是无法直接访问到的,这时用反向连接打通一条隧道,就可以从外网通过这条隧道进来了。 命令: ssh -R [服务器IP或省略]:[服务器端口]:[客户端侧能访问的IP]:[客户端侧能访问的IP的端口] [登陆服务器的用户名@服务器IP] -p [服务器ssh服务端口(默认22)] 其中,服务器IP如果省略,则默认为127.0.0.1,只有服务器自身可以访问。指定服务器外网IP的话,任何人都可以通过[服务器IP:端口]来访问服务。当然,这个时候服务器本机也要输入外网IP:端口来访问。 举例说明: “本机”IP 192.168.1.2,你可以ssh到外网某台服务器8.8.8.8,你内网里有一台机器192.168.1.3。 如果你想让外网所有的能访问8.8.8.8的IP都能访问192.168.1.3的http服务,那么可以执行: ssh -CfNg -R 8.8.8.8:8080:192.168.1.3:80 test@8.8.8.8 C表示压缩数据传输 f表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用. N表示不执行脚本或命令 g表示允许远程主机连接转发端口 也就是说,ssh到8.8.8.8上,然后把本地局域网内192.168.1.3的80端口映射到8.8.8.8的8080端口上,这样外网任何一台可以访问8.8.8.8的机器都可以通过8080端口访问到内网192.168.1.3机器的80端口了。 (责任编辑:) |