端口转发
来源:互联网 发布:新手淘宝客 编辑:程序博客网 时间:2024/05/01 09:55
今天遇到一个问题:一个发送java message到开发环境的TIBCO服务器C的程序在开发机器B上运行时遇到问题,想在本地自己机器A上debug一下。
但问题是本地A只能连接到开发机器B,不能连接到开发环境的TIBCO服务器C(防火墙的原因,JMS服务用的是7222端口)。
因此在A上eclipse里debug程序时,一直报错"cant connect to remote server C".
此时端口转发就有用了:端口转发(Port forwarding),有时被叫做隧道,是SSH为网络安全通信使用的一种方法。
简单的说就是将发送到C:7222端口的网包通过B转发。
具体使用方法简单到不能再简单了。大家熟知的putty附带的另一个小工具plink,以及openSSH都有这个功能。
plink:
plink username@B -L 1234:C:7222
B就是机器B的IP,username是登陆B机器时的用户名。C是机器C的IP
这个命令的意思就是,将发送到本地1234端口的包转发到C的7222端口。同时使用机器B做中转。
执行这个命令后,会提示输入username对应的密码。
完成后,在eclipse中,将程序中的“发送消息到C:7222”对应的代码改成“localhost:1234”,程序正常运行。
openSSH的命令和plink是完全一样的。
ssh yourserver -L 80:reddit.com:80 -g
参数解释:
-L listen-port:host:port Forward local port to remote address
-g Allow remote hosts to connect to forwarded ports. 这样一个局域网中的其他人就可以连接我的机器localhost:1234,然后再发送到C:7222了
其实端口转发可以用来绕过防火墙。例如机器A和机器B之间有防火墙,他们之间只打开了22端口(ssh)。而此时A需要连接到B的8888端口上。我们可以简单的根据端口转发来实现:
plink username@B -L 1111:B:8888 (使用本地1111端口)
之后在A上就可以telnet 127.0.0.1 1111。此时可以发现可以连接上。
- 端口转发
- 端口转发
- 端口转发
- 端口转发
- 端口转发
- 端口转发
- 端口转发
- 端口转发
- 汇编端口转发程序
- ssh端口转发
- 端口转发C代码
- 端口转发C代码
- SSH 端口转发
- SSH 端口转发
- FW: SSH端口转发
- 实战ssh端口转发
- SSH端口转发
- ssh 端口转发
- C++ 读写WriteableBitmap数据方法
- print的可变参数
- Linux头文件作用&信号signal处理函数
- 【学习点滴-数据结构-栈&队列】设计一个min函数的栈
- java原型模式(Prototype)
- 端口转发
- Ruby和Python的比较
- Linux网络协议栈(二) -- 套接字缓存(socket buffer)
- 动态代理
- wget下载整个网站
- Oracle 查询历史数据
- 分布式缓存系统 Memcached
- mfcs80ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
- EAN-13 条码生成