一条ssh命令实现端口转发,实现跨机器直接访问
来源:互联网 发布:windos远程桌面mac 编辑:程序博客网 时间:2024/06/18 16:37
http://blog.csdn.net/oufuji/article/details/50358756
一条ssh命令实现端口转发,实现跨机器直接访问
#功能场景:192.168.100.12和192.168.100.11在内网可以连接,但是只有12这台机器有另外一个网口配置了外网可访问的地址,外网不能直接访问11这台机器。
#那么,平时的做法是外网连接12机器,然后通过12这个跳板访问11;ssh连接的方式。
#问题来了:我客户端要直接访问11的数据库或者网页,肿么办?
#SSH隧道端口端口转发帮助你,只要一条命令搞定。
#具体需求,192.168.100.11:7180是CM的管理页面,外部无法访问,通过12这台机器的外网网口转发。
#本机192.168.100.12监听来自对本机全部网口6180端口发起连接的请求,然后把数据全部转发到192.168.100.11的7180端口去
ssh -C -f -N -g -L 6180:192.168.100.11:7180 hadoop@192.168.100.11
#6180:192.168.100.11:7180 意义--本机监听端口:远端主机:远端端口
#hadoop@192.168.100.11 建立隧道需要对端SSH用户名和密码
########### 网页连接前
12:
netstat -an |grep 6180
#####
[root@snn ~]# ssh -C -f -N -g -L 6180:192.168.100.11:7180 hadoop@192.168.100.11
hadoop@192.168.100.11's password:
[root@snn ~]# netstat -an |grep 6180
tcp 0 0 0.0.0.0:6180 0.0.0.0:* LISTEN
tcp 0 0 :::6180 :::* LISTEN
[root@snn ~]#
#以上会发现,12这台机器起了6180端口,侦听外面发起的连接请求
#那么在其他机器发起对6180连接后,可以看到会话建立了。
###########
11:
netstat -an |grep 7180
#####
[root@master ~]# netstat -an |grep 7180
tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN
[root@master ~]#
插图:
#(实验环境没有跨网段,实际情况,第三方机器访问的不是192.168.100.11那个IP,而是其他网口IP,侦听端口对即可)
#实际上,浏览器中地址栏显示是12的6180端口,但是内容实质是11那边开启的7180服务。
插图:########### 网页连接后
12:
netstat -an |grep 6180
#####
[root@snn opt]# netstat -an |grep 6180
tcp 0 0 0.0.0.0:6180 0.0.0.0:* LISTEN
tcp 0 5 192.168.100.12:6180 192.168.100.1:49330 ESTABLISHED
tcp 0 0 192.168.100.12:6180 192.168.100.1:49332 ESTABLISHED
tcp 0 0 192.168.100.12:6180 192.168.100.1:49331 ESTABLISHED
tcp 0 0 192.168.100.12:6180 192.168.100.1:49345 ESTABLISHED
tcp 0 0 192.168.100.12:6180 192.168.100.1:49334 ESTABLISHED
tcp 0 0 :::6180 :::* LISTEN
[root@snn opt]#
wireshark抓包:12上抓eth0的包
tcpdump -i eth0 host 192.168.100.11 -w /opt/6180.cap
################## 用完,直接停掉进程即可。
[root@snn opt]# netstat -an |grep 6180
tcp 0 0 0.0.0.0:6180 0.0.0.0:* LISTEN
tcp 0 0 :::6180 :::* LISTEN
[root@snn opt]# netstat -tlnp |grep 6180
tcp 0 0 0.0.0.0:6180 0.0.0.0:* LISTEN 4642/ssh
tcp 0 0 :::6180 :::* LISTEN 4642/ssh
[root@snn opt]# ps -f 4642
UID PID PPID C STIME TTY STAT TIME CMD
root 4642 1 0 16:05 ? Ss 0:00 ssh -C -f -N -g -L 6180:192.168.100.11:7180 Hadoop@192.168.100.11
[root@snn opt]# kill -9 4642
[root@snn opt]# netstat -tlnp |grep 6180
[root@snn opt]# netstat -tlnp |grep 6180
[root@snn opt]#
################################
问题:有些机器SSH设置不允许端口转发,需要设置vi /etc/ssh/sshd_config
gatewayports yes
参考:
http://blog.csdn.net/ghosttzs/article/details/7572159
如果ssh端口转发时候-g没有效果解决方案
http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
实战 SSH 端口转发
其他的远端转发,用于私网和公网建立隧道,反向访问私网的一个手段,暂时没有用得上。至于*翻*墙*的socket转发,呵呵。
- 一条ssh命令实现端口转发,实现跨机器直接访问
- 一条ssh命令实现端口转发,实现跨机器直接访问
- SSH端口转发实现代理服务器
- 利用ssh端口转发实现邮件转发
- netsh命令实现端口转发
- 利用SSH端口转发功能实现X转发
- 利用Putty通过ssh端口转发实现FireFox和MSN加密代理访问
- VBOX使用NAT端口转发实现宿主机器访问genymotion上的web服务
- ssh端口转发命令介绍
- ssh端口转发命令介绍
- 使用Linux的SSH端口转发实现代理上网
- 基于SSH端口转发实现telnet的安全传输
- 基于SSH端口转发透过网关实现安全通信
- 利用ssh的端口转发实现SOCKS5代理
- 通过 SSH 端口转发实现异地内网服务器互通
- 通过 SSH 实现 TCP / IP 隧道(端口转发)
- 使用SSH 实现本地代理,远程端口转发
- ssh端口转发实现局域网到局域网的连接
- 解决给一组Button设置Background导致点击效果错乱问题
- php __CLASS__、get_class()与get_called_class()的区别
- Java装箱与拆箱
- 软件测试与软件质量
- javascript
- 一条ssh命令实现端口转发,实现跨机器直接访问
- oracle中的SGA-共享池
- 如何移除干净的oracle数据库
- Python 2.7.x 和 3.x 版本的重要区别小结
- pylinkgrammar 在Ubuntu上安装
- windows下 tomcat8 PermGen内存设置
- 利用scp传输文件
- 新三人斗地主常用规则说明与攻略
- Springmvc简介(一)