Socket使用Linux SSH代理发送数据

Socket使用Linux SSH代理发送数据

写这篇文章是为了解决项目开发中,在处理第三方接口时,在本地开发调试的问题。

场景:

某应用需要调用发送短信接口发送短信(或调用其他第三方接口),但是这些接口都有服务器IP鉴权,只允许从局方提供的服务器上才能调用。

需求:

接入第三方接口需要一个开发和反复调试的过程,每次将写好的程序上传到服务器上测试很是麻烦,看日志和断点调试又都不方便,现在需要让第三方接口把自己电脑认作是服务器,这样就方便开发调试了。

前提条件:

服务器要可以进行SSH连接,但又没有VPN(因为有VPN就没有这些问题了,拨进去就直接可以)

一、做如下准备:

1、一台可以通过Intenet进行ssh连接的linux服务器

我们假设服务器IP地址为202.102.110.110,ssh端口22,登录账号root,登录密码123456

2、一个有IP地址鉴权,只允许该服务器访问的第三方接口

我们假设这个接口为一个Socket接口,接口IP地址为202.102.119.119,端口为8080

3、ssh代理软件

myentunnel,下载地址:http://ishare.iask.sina.com.cn/f/23849533.html?from=like,如果该连接不可以下载,百度一下即可,有很多资源。

4、firefox浏览器

非必须,下面也会写一下firefox浏览器的代理配置,网上购买ssh账号就可以访问 facebook 这样的网站了。

二、配置ssh代理软件

1、运行myentunnel.exe,如图:

打开显示配置界面,如图:

2、配置SSH登录参数

输入服务器IP地址202.102.110.110、登陆账号、密码,这里我们设置本地代理端口为7070,后面需要用到。

点击保存——>连接,我们可以隐藏窗口,需要打开界面在电脑右下角可以找到。

三、Socket 连接使用代理像第三方接口发送数据

1、常规 Socket 连接代码如下:

[java] view plaincopy

    Socketsocket=newSocket("202.102.119.119",8080);socket.setSoTimeout(60000);//……

2、使用代理连接发送数据代码如下:[java] view plaincopy

    Socketsocket=newSocket(newProxy(Proxy.Type.SOCKS,newInetSocketAddress("127.0.0.1",7070)));//本地代理端口为7070socket.connect(newInetSocketAddress("202.102.119.119",8080));socket.setSoTimeout(60000);//……

这样以来,第三方接口鉴权IP获取的IP地址就是我们的服务器IP地址(202.102.110.110),而不会是我们自己电脑的IP地址了。

四、配置 firefox 浏览器使用socks5 代理

1、访问 http://www.ip138.com/ 可以查看我们的IP地址,下图是我的IP地址:

2、打开 firefox 浏览器,在地址栏输入about:config,搜索 remote ,设置 network.proxy.socks_remote_dns 的值为true,双击可以切换false和true。

3、点击浏览器上面菜单栏中的工具->高级->网络->设置->手动配置代理->输入socks主机为127.0.0.1,端口为7070 ->确定完成

此时再打开http://www.ip138.com/ 网站查看IP地址就变成服务器的IP地址了 202.102.110.110

PS:如果需要经常上一些国外的网站,像开始提到的 facebook,可以在网上买一个ssh代理服务器账号,使用上面的方法即可访问。生活比你想象的要容易得多,只要学会接受那些不可接受的,

Socket使用Linux SSH代理发送数据

相关文章:

你感兴趣的文章:

标签云: