Windows下自带端口转发功能
2016-01-14 11:36
246 查看
因为工作中一个项目,总部与各个分部只有citrix服务器才能通讯,总部客户端想通过分部citrix访问分部内网资源。基本思路,通过程序修改获取的ICA文件中的IP地址和端口,将修改后的ICA文件返回给客户端,实现客户端通过连接本地citrix,自动跳转到另外一个网络的citrix。之前用的是haproxy,但是haproxy与程序交互不是很好,如果各个分部只有一台citrix服务器,事先静态写好还可以,但是一般分部会有多台citrix服务器,不能确定每次使用的是哪台citrix服务器,这样想通过程序动态添加映射条目就比较难以实现。
-----haproxy主要用于负载,如果只是负载一个,那就成为端口映射了,但是毕竟是linux下面的程序。
-----windows下也有一个小工具:portforward.exe,图形界面容易操作,个人平常使用可以,但是也没有办法实现与程序交互。
经过在网上搜索,发现windows系统,包括xp,2003,2008等(测试2012也支持),都自带portproxy功能。目前只支持tcp协议的端口转发,前提需要作为portproxy的主机需要安装IPV6,安装可以不启用IPV6。
A.配置方法
假定需要通过192.168.1.8的14941端口连接192.168.1.118的1494端口,则需要在192.168.1.8主机的命令行输入如下语句
netsh interface ipv6 install
netsh interface portproxy add v4tov4 listenaddress=192.168.1.8 listenport=14941 connectaddress=192.168.1.118 connectport=1494
---如果已经安装IPV6,第一条可以不需要
---如果操作系统开启了主机防火墙,需要放行TCP 14941的入站连接
---2008防火墙较以前版本有较大改动,可以参考如下链接:
http://pcedu.pconline.com.cn/soft/virus/safe/0710/1130476.html
如果想取消上面配置的端口转发,可以用如下语句:
netsh interface portproxy delete v4tov4 listenaddress=192.168.1.8 listenport=33891
如果想查看已经配置了哪些端口转发,可以用如下语句:
netsh interface portproxy show v4tov4
B.优点
可以随时根据需要添加或删除端口转发条目,并且重启操作系统仍能自动保存之前的配置并自动启用,不像HAproxy修改完配置文件还需重启HAproxy。
网上有的说xp配置端口转发不起作用,估计是没有安装IPV6的缘故,用xp测试,安装了IPV6后可以实现端口转发,并且不需要开启路由和远程访问服务。
另外考虑到端口转发的冗余,可以多台主机都配置端口转发,且不用指定本地监听地址,这样可以通过操作系统提供浮动地址来实现冗余:
netsh interface portproxy add v4tov4 listenport=14941 connectaddress=192.168.1.118 connectport=1494
程序实现动态添加的时候,可以telnet到每台都添加条目,也可以只与虚地址联系,每次都检查是否有对应的映射条目(根据ica文件中需要连接的citrix服务器的IP地址来检查),如果没有则命令行添加,添加时要确保本地端口不能被占用,并且还需要考虑防火墙,用netsh添加入站端口访问规则。
----需要citrix主机开启telnet服务,并设置访问控制,只允许特定主机连接。
本文出自 “httpyuntianjxxll.spac..” 博客,请务必保留此出处http://333234.blog.51cto.com/323234/1135361
-----haproxy主要用于负载,如果只是负载一个,那就成为端口映射了,但是毕竟是linux下面的程序。
-----windows下也有一个小工具:portforward.exe,图形界面容易操作,个人平常使用可以,但是也没有办法实现与程序交互。
经过在网上搜索,发现windows系统,包括xp,2003,2008等(测试2012也支持),都自带portproxy功能。目前只支持tcp协议的端口转发,前提需要作为portproxy的主机需要安装IPV6,安装可以不启用IPV6。
A.配置方法
假定需要通过192.168.1.8的14941端口连接192.168.1.118的1494端口,则需要在192.168.1.8主机的命令行输入如下语句
netsh interface ipv6 install
netsh interface portproxy add v4tov4 listenaddress=192.168.1.8 listenport=14941 connectaddress=192.168.1.118 connectport=1494
---如果已经安装IPV6,第一条可以不需要
---如果操作系统开启了主机防火墙,需要放行TCP 14941的入站连接
---2008防火墙较以前版本有较大改动,可以参考如下链接:
http://pcedu.pconline.com.cn/soft/virus/safe/0710/1130476.html
如果想取消上面配置的端口转发,可以用如下语句:
netsh interface portproxy delete v4tov4 listenaddress=192.168.1.8 listenport=33891
如果想查看已经配置了哪些端口转发,可以用如下语句:
netsh interface portproxy show v4tov4
B.优点
可以随时根据需要添加或删除端口转发条目,并且重启操作系统仍能自动保存之前的配置并自动启用,不像HAproxy修改完配置文件还需重启HAproxy。
网上有的说xp配置端口转发不起作用,估计是没有安装IPV6的缘故,用xp测试,安装了IPV6后可以实现端口转发,并且不需要开启路由和远程访问服务。
另外考虑到端口转发的冗余,可以多台主机都配置端口转发,且不用指定本地监听地址,这样可以通过操作系统提供浮动地址来实现冗余:
netsh interface portproxy add v4tov4 listenport=14941 connectaddress=192.168.1.118 connectport=1494
程序实现动态添加的时候,可以telnet到每台都添加条目,也可以只与虚地址联系,每次都检查是否有对应的映射条目(根据ica文件中需要连接的citrix服务器的IP地址来检查),如果没有则命令行添加,添加时要确保本地端口不能被占用,并且还需要考虑防火墙,用netsh添加入站端口访问规则。
----需要citrix主机开启telnet服务,并设置访问控制,只允许特定主机连接。
本文出自 “httpyuntianjxxll.spac..” 博客,请务必保留此出处http://333234.blog.51cto.com/323234/1135361
相关文章推荐
- 【转】Centos 建立一个新用户 详细讲解
- 用虚拟现实技术看电影?现在并不能让你体验高潮
- Hive概要
- hdu 1598 find the most comfortable road(并查集)
- CentOS6.5下搭建NFS文件服务器
- 【SQL 编程你也行】SQL Server 2014新功能之序列Sequence
- Android 夜间模式changeskin小结
- 记录一些linux命令
- 性能测试流程
- 【ZYNQ-7000开发之九】使用VDMA在PL和PS之间传输视频流数据
- 自行車基本知識 (zz)
- SQL 左外连接,右外连接,全连接,内连接
- SQL Server中截取字符串常用函数
- log4j 文件配置
- 图像极坐标变换
- 在rom开发的时候如何快速的将APK打包,然后导入我们的手机。
- 用bulk 实现超快迁移审计表AUD$数据过程一个
- 基于彻底解耦合的实验性iOS架构
- 测试评审要点(计划、用例、报告)
- 关于烂代码的那些事 - 为什么每个团队存在大量烂代码