vIDC v2.0 强大的端口转发神器使用总结-开放内网tfs代码服务

时间:2023-03-10 06:26:49
vIDC v2.0 强大的端口转发神器使用总结-开放内网tfs代码服务

  vIDC2.0 端口映射工具,最近在公司闲来无事,想自己整个tfs来管理自己的研究代码. 本来是想用微软Visual Studio提供的免费tfs,但是无奈速度太慢.他们的服务器在美国,中国也没有代理.签入签出一个东西要老命了 .那怎么办呢. 后来想想自己家里有台牛B的机器,我为什么不自己搭一个呢.

  但是没有外网IP.然后就有了后面研究端口转发的东西.得益于几年前的对黑客知识*痴迷.想当年买各种黑客X档案,一起黑别人服务器的日子很有意思 :-) 不过那些都是往事了.现在不干那些了.

有两个方案:

  1. LCX 这个工具以前一般用来解决远程3389端口开了但是被防火墙给挡了的情况,也可以用来做端口转发.但是这个东西不太稳定,老是挂.不靠谱
  2. vIDC 这个工具我以前是用来给内鸡上线的,现在出2.0了,更加稳定,相关的靠谱.我测试三天左右一次都没有挂过.而且转300多MB的代码也没有出现用微软tfs的那种蛋疼事情. 推荐

  怎么想到这两个小东西的呢,以前在抓肉鸡的时候,肉鸡是抓着了,但怎么让他们上线呢.由于大部分时候我们的机器上并没有外网ip或者没有路由控制权限,我们处于内网的环境下.比如在网吧的时候. 于是我就需要一个有外网IP的机器来充当我的服务器,"借用"一个端口给我.让我的小肉鸡们上线.这个就叫作端口映射.关系图大概是这样:

[肉鸡]------------>[外网服务器]<-------------[我的机器]

    8010   8010/8000   8000     
[肉鸡]------------>[外网服务器]------------->[我的机器]

8010端口熟悉吧,上兴的默认端口.当年的牛B远程控制软件.还有PCShare我还是比较喜欢这个. :-)

这个图的意思就是肉鸡访问外网服务器的8010端口,然后服务器将8010端口的通讯转发到我本地的8000端口,这样我只用监听本地8000端口就好了.

  上面说的是远控内网上线的版本.这个和我搭建tfs服务器也是一个道理.这样我平时使用tfs服务的这个角色就相关于上面的[肉鸡].我的tfs服务器就相当于上面的[我的机器].

  下面这个是在网上找的一个vDIC的介绍文章,他写得比较粗放,我给修了修. 附上Word版

程序介绍

vIDC2.0是一个端口映射工具,本程序包含vIDC服务和客户端两部分功能,既可以作为vIDC服务又可作为vIDC客户端工具。较vIDC2.0以前的版本而言新版的vIDC20增加支持UDP服务的映射,采用线程缓冲/复用以及通讯管道缓冲和复用占用cpu资源少,转发速度更快稳定性更好。主要包含如下功能:

1、 代理服务功能,支持http/socks4/socks5代理,支持代理验证,支持udp代理,支持二级代理

2、 本地端口映射,类似porttunnel功能,即将本地网络的任何应用服务端口映射到本程序运行的机器上,应用服务客户端可通过映射端口访问应用服务,主要用在将内网服务端口,映射到网关上以便其他用户可以访问,当然前提是vIDC20必须运行在网关机器上。

3、 端口映射vIDC功能,假如你无法在网关上运行vIDC20那么你如何让其他人访问你的内网服务呢?你可以通过vIDC20将本地的任何应用服务映射到任意一个vIDCs服务器上(即另外一个vIDC20所运行的机器),这样假如用户无法访问你网络里的某个应用服务,但他可以访问另外一个你能控制的机器,那么你就可以在他可以访问的机器上运行vIDC20,启动vIDCs服务。然后在你的应用服务所在的网络中再运行一个vIDC20,通过此工具将你的应用服务映射到vIDCs上,这样用户就可以访问内网应用服务了。

4、 SSL加密解密功能,用户映射端口时可以指定+ssl或-ssl,将普通应用服务转化为SSL加密的应用服务,或将SSL加密的应用服务转化为无需SSL加密验证的服务。

程序运行

运行方式

vIDC20是一个控制台应用程序,它可以作为系统服务运行。支持的命令行参数如下:

//-i [serverName] [服务描述] --- 安装vIDC20作为一个系统服务,用户可以指定服务名称和描述。

//-u ---卸载服务。

//-s --- 启动服务

//-e --- 停止服务

//-d --- 控制台方式,-d0 ~ -d4指定不同的debug调试信息级别,关闭控制台窗口将结束程序运行。如果仅仅指定-d则以无控制台方式运行,关闭窗口程序不会结束.

//-f filename 读取指定的配置文件,仅指定了-d运行参数时才有效

//-p svrport 指定服务的运行端口,如果端口等于0则不启动服务端口。仅指定了-d运行参数时才有效

配置介绍

vIDC20默认的服务端口是8080。

vIDC20支持参数配置文件,用户可以以-f参数指定配置文件名称,如果不指定程序默认读取和程序同名但扩展名为ini的参数配置文件.比如程序名为vIDC20.exe,则默认读取的配置文件为vIDC20.ini

远程管理

vIDC支持用户远程配置管理,用户可以通过telnet连接vIDC的服务端口,连接上服务后用户必须先输入一个'v',如果无需认证则直接出现欢迎提示,否则将用求用户输入用户名和密码,验证成功后出现欢迎提示信息vIDC20>.这时用户可以输入配置管理命令,配置文件也是由vIDC20支持的配置命令组成,每一行是一跳配置命令,vIDC20支持的配置命令如下:

注意:下面的命令解释中 <>代表用户输入内容,[]代表可选项 | 代表可输入其中一项每一条命令的各个参数项之间以1个空格分割!!!!

命令介绍

此介绍中分为三部分来讲,这些命令的运行环境是指的在Telnet连接到远程vIDC端后来执行的.

本地映射

mtcpl –本地TCP端口映射

映射TCP应用服务到本程序运行所在机器

用法: mtcpl <应用服务地址:应用服务端口> <映射端口[+ssl|-ssl]> [<应用服务说明>]

<映射端口>如果指定为<=0,则端口随机分配.

例如: mtcpl 192.168.0.12:80 0 映射web服务

映射端口后可跟+ssl或-ssl关键字,如果指定+ssl,意味着将某个非SSL加密的应用服务转换为SSL加密的服务。

例如你有一个普通的web服务,假如你映射此服务时指定了+ssl那么用户通过映射端口访问应用服务时必须通过https://映射ip:映射端口。不能用普通的http://访问。

如果映射时指定了-ssl,则将某个SSL的应用服务映射后转化为普通的应用服务。

你如你有一个需要SSL访问的应用服务,但某个用户的客户端不支持SSL,则你可以通过-ssl将此服务映射出来,用户就用普通的方式访问应用服务而无需SSL。

你可以指定多个相同服务的<应用服务地址:应用服务端口>,各个地址端口之间以,号分割。例如mtcpl 192.168.0.12:80,192.168.0.13:80,192.168.0.14:80 0 映射test服务

vIDC2.0支持传输控制层上的集群服务的负载均衡,如果指定多个应用服务地址:端口,则用户访问映射端口时,vIDC20会自动在你指定的多个服务地址端口间均衡分配用户

达到达到集群服务的负载均衡的目的。当然此负载均衡是建立在传输控制层(TCP/UDP)上的,没有对服务的应用层做任何解析,因此,如果用户映射的服务是具有会话性质的服务

用此功能将导致会话可能失效,例如使用了session的web应用服务。

同样mudpl ,mtcpr,mudpr命令都支持指定多个<应用服务地址:应用服务端口>,用法同此命令

utcpl –取消本地TCP服务映射

即取消由mtcpl映射的应用服务。参数为应用服务映射成功后的映射端口

用法: utcpl <映射端口>

mudpl–本地UDP服务映射

映射UDP应用服务到本地

用法: mudpl <应用服务地址:应用服务端口> <映射端口> [<应用服务说明>]

<映射端口>如果指定为<=0,则端口随机分配.

uudpl –取消本地UDP服务映射

即取消由mudpl映射的应用服务。参数为应用服务映射成功后的映射端口

用法: uudpl <映射端口>

远程映射

mtcpr - 映射TCP应用服务到指定的vIDCs

用法: mtcpr  <应用服务地址:应用服务端口> <映射端口[+ssl|-ssl]>

[<应用服务说明>]<映射端口>如果指定为<=0,则端口随机分配.

如果vIDCs没有访问密码,则处填null

例如: mtcpr 192.168.0.12:80 0 211.100.1.10 8080 null test测试

utcpr - 取消TCP映射

用法: utcpr <映射端口>

mudpr - 映射UDP应用服务到指定的vIDCs

用法: mudpr  <应用服务地址:应用服务端口> <映射端口>

[<应用服务说明>]<映射端口>如果指定为<=0,则端口随机分配.

如果vIDCs没有访问密码,则处填null

uudpr - 取消UDP映射

用法: uudpr <映射端口>

服务配置

vidcs - 本vIDCs服务的参数设置

用法: vidcs <[pwd=<密码>] [enable=]>

参数:

pwd=<密码> - 设置vIDCc连接vIDCs的密码,设置为null,则不要密码验证.

例如:vidcs pwd=null

enable=  - 是否允许vIDCs服务.设为假,则本程序将不关闭 vIDCs服务功能。

例如: vidcs pwd=null enable=true

dconn - 强制断开某个vIDCc客户端和本vIDCs服务的连接

用法: dconn vidccID

参数:

vIDCc客户端在本vIDCs上的ID标识,可通过status vidcs查看.

例如:你可通过status vidcs查看本vIDCs服务的状态以及各个vIDCc的映射信息,显示类似下面,其中()中内容就是vidccID。

- [vidcs] - port=8080,auth=false enabled=true

- [vidcs] - total 1 vidcc connected -

- --vidcc(80B595)-- - 2005-03-23 12:01:30 xxxx vidc测试客户  -

- -- tcp -- - 1432 192.168.0.12:80 test测试

- [vidcs] - ------------------------------ -

proxy - 代理服务的参数设置

用法: proxy <[pwd=<帐号>] [enable=] [type=<支持的代理类型>] [cas=<二级代理信息> >

参数:

pwd=<用户名:密码> - 设置代理服务的用户名/密码,设置为null,则不要密码验证.

enable= - 是否允许代理服务.

type=<代理类型>

- 设置代理服务支持的类型 PROXY_HTTP|PROXY_SOCKS4|PROXY_SOCKS5.

cas=<二级代理>

- 设置二级代理,二级代理信息格式如下:

- cas=null 或者 cas=,,,[,]

!!!除非用户显示的通过proxy命令设置了代理信息,否则默认代理服务是启动的,并且支持所有的代理协议且无需密码控制,无二级代理

status - 显示本程序的状态信息

用法: status

vidcs - 显示vIDCs服务的信息以及连接到vIDCs上的所有vIDCc的信息.

vidcc - 显示本程序作为vIDCc客户端连接的vIDCs的信息和映射信息.

proxy - 显示本代理服务的信息.

mport - 显示本地端口映射信息.

all   - 显示所有信息.

sets - 设置本程序的运行参数

用法: sets

log=[filename] - 设置记录程序日志的文件名=null,则不记录日志.

loglevel=[LEVEL] - 设置输出日志的级别[DEBUG WARN INFO ERROR].DEBUG为最低级别,将记录所有的日志输出,ERROR为*别,仅仅记录错误状态的日志。

port=[端口]  - 设置服务的运行端口,运行时设置无效如果设置为0则不启动侦听端口,则vIDCs以及代理服务不可用,并且无法启用telnet进行远程配置管理.

pwd=[用户名:密码]- 设置telnet远程配置管理的帐号.设置为空null则不需要密码验证.

例如: sets log=log.txt loglevel=WARN pwd=aa:bb

配置文件

程序运行的配置文件可由上述命令组成,每个命令一行。如果行开头为!,说明此行为注释,不作解释。

假如用户想在程序启动后自动映射服务端口到本地以及vIDCs上,则可以写一个如下内容的配置文件:

!vIDC20程序配置文件

mtcpl 192.168.0.12:80 0 test测试

mtcpr 192.168.0.12:80 0 211.100.1.10 8080 null test测试