ssh转发(实现代理,跳板,加密隧道 ...)
2007-04-24 10:09
696 查看
记得第一次做跳板还是高中时代,是台韩国的win2k,装的是Snake的socks代理.
当时还相当紧张,传了一堆工具上去删日志,已经是上世纪末的事了,呵呵.
言归正传,
选择ssh的4个理由:
1、使用方便,功能强大,加密强度高,运行稳定.
2、ssh几乎是*nix系统的标配,不需额外安装.现在的想找台没跑sshd的*nix主机也是件难事.
3、防火墙基本不会对ssh的连接下黑手
4、跨平台,linux BSD UNIX m$ 等不同平台上的ssh都能相互连接.
ssh实现转发,只要用到以下两条命令:
ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119
不论是做跳板,还是加密隧道,还是加密其他的网络连接也都是这两条命令。
视具体情况而定,有时只要用到其中一条,有时两条都要用到。
条命解释:
-CfNg (照抄即可)
C表示压缩数据传输
f表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用.
N表示不执行脚本或命令
g表示允许远程主机连接转发端口
-L 本地转发
ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
表示:
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在本机上打开6300端口.用 netstat -an|grep 6300 可看到 127.0.0.1:6300 或 127.0.0.1.6300
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.
简单说,本机的6300端口就是远程主机192.168.1.119的1080端口。
-R 远程转发
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在远程主机192.168.1.119上打开1080端口.
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.
本机的6300端口可直接看作远程主机192.168.1.119的1080端口。
举个实用的例子:
有A、B、C 3台服务器,A,C有公网IP,B是某IDC的服务器无公网IP。
A希望同过B连接C的80端口,A<=>B<=>C
在B上执行如下命令即可:
host-B$ ssh -CfNg -L 6300:127.0.0.1:80 userc@C
host-B$ ssh -CfNg -R 80:127.0.0.1:6300 usera@A
服务器A和服务器C之间,利用跳板服务器B建立了加密隧道。
在A上连接127.0.0.1:80,就等同C上的80端口
需要注意的是:
服务器B上的6300端口的数据没有加密,可被监听,
例:
#tcpdump -s 0 -i lo port 6300
_uacct = "UA-337305-1";
urchinTracker();
当时还相当紧张,传了一堆工具上去删日志,已经是上世纪末的事了,呵呵.
言归正传,
选择ssh的4个理由:
1、使用方便,功能强大,加密强度高,运行稳定.
2、ssh几乎是*nix系统的标配,不需额外安装.现在的想找台没跑sshd的*nix主机也是件难事.
3、防火墙基本不会对ssh的连接下黑手
4、跨平台,linux BSD UNIX m$ 等不同平台上的ssh都能相互连接.
ssh实现转发,只要用到以下两条命令:
ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119
不论是做跳板,还是加密隧道,还是加密其他的网络连接也都是这两条命令。
视具体情况而定,有时只要用到其中一条,有时两条都要用到。
条命解释:
-CfNg (照抄即可)
C表示压缩数据传输
f表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用.
N表示不执行脚本或命令
g表示允许远程主机连接转发端口
-L 本地转发
ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
表示:
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在本机上打开6300端口.用 netstat -an|grep 6300 可看到 127.0.0.1:6300 或 127.0.0.1.6300
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.
简单说,本机的6300端口就是远程主机192.168.1.119的1080端口。
-R 远程转发
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在远程主机192.168.1.119上打开1080端口.
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.
本机的6300端口可直接看作远程主机192.168.1.119的1080端口。
举个实用的例子:
有A、B、C 3台服务器,A,C有公网IP,B是某IDC的服务器无公网IP。
A希望同过B连接C的80端口,A<=>B<=>C
在B上执行如下命令即可:
host-B$ ssh -CfNg -L 6300:127.0.0.1:80 userc@C
host-B$ ssh -CfNg -R 80:127.0.0.1:6300 usera@A
服务器A和服务器C之间,利用跳板服务器B建立了加密隧道。
在A上连接127.0.0.1:80,就等同C上的80端口
需要注意的是:
服务器B上的6300端口的数据没有加密,可被监听,
例:
#tcpdump -s 0 -i lo port 6300
_uacct = "UA-337305-1";
urchinTracker();
相关文章推荐
- 通过 SSH 实现 TCP / IP 隧道(端口转发)
- DNS隧道之DNS2TCP实现——dns2tcpc必须带server IP才可以,此外ssh可以穿过墙的,设置代理上网
- 通过 SSH 实现 TCP / IP 隧道(端口转发)
- 使用反向代理(Nginx)和隧道转发(SSH)实现内网端口映射
- 使用Linux的SSH端口转发实现代理上网
- SSH转发及安全隧道的简单实现
- 使用Linux的SSH端口转发实现代理上网
- 用SSH实现X11转发
- PuTTY+Xming实现X11的ssh转发
- 利用灵雀云免费主机做反向ssh端口转发,实现内网服务器的外网访问_20160107_七侠镇莫小贝
- 5.1通信数据转发程序:代理,网关,隧道
- HTTP代理实现请求报文的拦截与篡改5--将请求报文并转发至服务器
- 实现SCP和SSH代理连接
- 利用SSH端口转发功能实现X转发
- SSH反向代理实现外网访问内网服务器
- 利用ssh的端口转发实现SOCKS5代理
- 使用SSH反向隧道进行内网穿透(远程端口转发)
- SSH隧道与端口转发内网穿透