windows操作系统自带的TCP端口转发

因为工作中一个项目,总部与各个分部只有citrix服务器才能通讯,总部客户端想通过分部citrix访问分部内网资源。基本思路,通过程序修改获取的ICA文件中的IP地址和端口,将修改后的ICA文件返回给客户端,实现客户端通过连接本地citrix,自动跳转到另外一个网络的citrix。之前用的是haproxy,但是haproxy与程序交互不是很好,如果各个分部只有一台citrix服务器,事先静态写好还可以,但是一般分部会有多台citrix服务器,不能确定每次使用的是哪台citrix服务器,这样想通过程序动态添加映射条目就比较难以实现。

-----haproxy主要用于负载,如果只是负载一个,那就成为端口映射了,但是毕竟是linux下面的程序。

-----windows下也有一个小工具:portforward.exe,图形界面容易操作,个人平常使用可以,但是也没有办法实现与程序交互。

经过在网上搜索,发现windows系统,包括xp  2003,2008等,都自带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的入站连接

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/skills/

---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

时间: 2024-11-29 19:44:36

windows操作系统自带的TCP端口转发的相关文章

使用 ssh -R 建立反向/远程TCP端口转发代理

ssh是一个非常棒的工具, 不但能建立动态转发, 例如chrome的Switchy插件用到的就是这个技术. http://blog.163.com/digoal@126/blog/static/163877040201141821810103/ 还能建立TCP的转发隧道, 例如我以前写过的关于使用ssh 隧道加密和加速WAN传输的几个例子. http://blog.163.com/digoal@126/blog/static/163877040201342383123592/ http://bl

Windows自带的netsh端口转发/端口映射工具

Netsh特点 Windows自带,支持IPv4和IPv6,命令即时生效,重启系统后配置仍然存在. 缺点:不支持UDP 安装Netsh XP/2003需要先安?IPV6,Win7以上系统自带. netsh interface ipv6 install 常用命令 add - 在一个表格中添加一个配置项. delete - 从一个表格中删除一个配置项. dump - 显示一个配置脚本. help - 显示命令列表. reset - 重置端口代理配置状态. set - 设置配置信息. show - 显

Windows 和 Linux 平台下的端口转发工具

原文地址: http://unmi.cc/windows-linux-port-forwarding/ 这里记录一下我曾经使用过的几个端口转发工具,即端口映射.端口重定向,和 NAT 也是差不多的概念. Linux 下用过 iptables,rinetd:Windows 下用过某个防火墙的 NAT 功能.RemoteAnywhere 的端口重定向.FPipe,还有最近刚找到的 PassPort.试着去设置一下 Windows 2000 的 NAT  功能,但未成功,还是特定的软件简单易用,下面介

通过SSH实现TCP/IP隧道(端口转发):使用OpenSSH可能的8种场景

对于 Secure Shell (SSH) 这样的网络协议来说,其主要职责就是在终端模式下访问一个远程系统.因为 SSH 协议对传输数据进行了加密,所以通过它在远端系统执行命令是安全的.此外,我们还可以在这种加密后的连接上通过创建隧道(端口转发)的方式,来实现两个不同终端间的互联.凭借这种方式,只要我们能通过 SSH 创建连接,就可以绕开防火墙或者端口禁用的限制. 这个话题在网络领域有大量的应用和讨论: Wikipedia: SSH Tunneling O'Reilly: Using SSH T

SSH端口转发情景模拟

SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据.这一过程有时也被叫做"隧道"(tunneling),这是因为SSH为其他TCP链接提供了一个安全的通道来进行传输而得名.例如,Telnet,SMTP,LDAP这些TCP应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输.而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH的连接,那么也能够通过将 TCP 端口转发来使用 SSH 进行通讯. (一)概述 SSH端口转发能够将其他TCP端口的网络

【转】实战 SSH 端口转发

本文转自:http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html,至于有什么用,懂的懂! 实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题.学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业信息.同时也能够用此技术解决工作中一些常见问题,例如解决防火墙及网络应用本身带来的一些限制. 第一部分 概述 当你在咖啡馆享受免费

python检测远程服务器tcp端口的方法_python

本文实例讲述了python检测远程服务器tcp端口的方法.分享给大家供大家参考.具体如下: python检测远程服务器tcp端口的代码,这段代码可以用来做服务器监控实用 #!/usr/bin/env python #coding:utf-8 #filename:tcp.py ''' author: gavingeng date: 2011-12-14 09:35:59 ''' import socket import sys NORMAL=0 ERROR=1 TIMEOUT=5 def ping

Python实现网络端口转发和重定向的方法_python

本文实例讲述了Python实现网络端口转发和重定向的方法.分享给大家供大家参考,具体如下: [任务] 需要将某个网络端口转发到另一个主机(forwarding),但可能会是不同的端口(redirecting). [解决方案] 两个使用threading和socket模块的类就能完成我们需要的端口转发和重定向. #encoding=utf8 #author: walker摘自<Python Cookbook(2rd)> #date: 2015-06-11 #function: 网络端口的转发和重

Windows自带的端口转发工具netsh使用方法_DOS/BAT

下面的代码在windows下运行后可以讲172.20.53.1的14941端口转发到172.20.53.2的3389端口上 复制代码 代码如下: netsh interface ipv6 install netsh interface portproxy add v4tov4 listenaddress=172.20.53.1 listenport=14941 connectaddress=172.20.53.2 connectport=3389 如果要取消上面的端口转发,使用下面的代码 复制代