服务器到服务器的端口映射
最近开始使用OCS功能,感觉还不错,一开始有点不顺利的事情,后面在阿里云客服的热心帮助下解决,这里表示非常感谢!
阿里云的OCS跟我们自建的Memcached有点不一样,自建的没有认证的功能,阿里云的有认证的功能。当然啦,如果你比较厉害,也可以搭一个带认证功能的Memcached,不过我技术不太好,没有搭成功,如果有热心的朋友知道如何搭建,愿意教下我,那非常表示感谢。
寻找各种解决方法之后,自己实在没有搭成功,最后只能申请免认证的,不过仍然也很麻烦,因为在本地开发,要弄一个这样的环境很麻烦,发布到服务器之后,又要改各种配置,实在不方便,经过一点努力,想到如下方法可以实现,不需要任何第三方软件,只需要在你的服务器上做一点修改就可以方便做到外网访问内网的OCS了。
搭建要求:
1、阿里云有OCS实例
2、阿里云有ECS服务器
3、OCS跟ECS在同一个账号下,可以内网访问
实验环境(IP和账号为假的):
服务器版本:Windows Server 2008 R2 Standard Service Pack1(64位)
服务器公网IP地址:115.99.190.68
OCS内网地址:6aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com
OCS访问账号:6aecb9ba8378863e4
OCS访问端口:11211
在cmd命令行中执行如下命令:
1、添加端口映射
netsh interface portproxy add v4tov4 listenaddress=115.99.190.68 listenport=11211 connectaddress=6aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com connectport=11211
你在自己服务器上执行命令的时候,把监听的公网地址listenaddress,监听端口listenport,改成自己对应的公网地址,把连接地址connectaddress改成自己OCS的内网访问地址,connectport端口也改成自己OCS的连接端口即可。
通过以上命令,所有发往服务器115.99.190.68,端口11211的数据都会转发到映射的服务器和端口上。
2、在本地修改host文件
在host文件:C:\Windows\System32\drivers\etc\hosts中,添加如下映射
115.99.190.68 6aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com
这样在本地,使用地址6aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com访问,就会解析到服务器:115.99.190.68上了。
在本地开发调试的时候,直接指定OCS的访问地址,端口,账号和密码使用就可以了,能方便的调试使用OCS的功能,便于查找错误,在发布到服务器以后,也不需要修改程序的配置,更不需要在本地安装Memcached相关的软件,保证开发的环境跟上线的环境一致。
3、如果你开发调试完成了,记得在服务器上删除相关的映射
删除映射,使用命令:netsh interface portproxy delete v4tov4 listenaddress=115.99.190.68 listenport=11211
IP地址,换成自己映射时的IP地址就可以了。
4、查看已经映射的端口
使用命令:netsh interface portproxy show all
浙公网安备 33010602011771号