Chinaunix首页 | 论坛 | 博客
  • 博客访问: 278809
  • 博文数量: 64
  • 博客积分: 1547
  • 博客等级: 上尉
  • 技术积分: 692
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-12 23:46
个人简介

music,code,dialog,rest

文章分类

全部博文(64)

文章存档

2021年(2)

2020年(2)

2019年(6)

2018年(4)

2017年(5)

2016年(20)

2015年(4)

2014年(2)

2013年(1)

2012年(1)

2011年(1)

2010年(1)

2009年(2)

2007年(10)

2006年(3)

分类: Java

2012-08-07 01:43:47

大家都知道,SSH Tunnel可以实现 TCP Connection 的端口转发。

但是无法实现UDP的端口转发。

现在问题来了,怎么实现UDP通过现有TCP Connection的端口转发?

一查网上有一堆,看了一下基本都是Linux to Linux的。

仔细看看,只有一个看来还有点靠谱。

那个mrq3java版本的udptcp,再tcpudp转发器还比较好用。

那个英文的说明文档写的也太晦涩了,查了一下源码的含义,终于搞明白了配置文件的含义。

运行起来还是比较顺畅方便的。原来,这个东西是开发出来给游戏用的。

现在,我也拿来做远程测试,发UDP包还是不错的。

关键是客户端的配置,理解ssh tunnel的命令行,这个也比较好理解了。

 

client.txt

 #用户名和密码,必须和服务器侧设的一致

# Login data for the server

username = ech

password = password

 

#已知的Tcp Connection端口号,我这里主要用来发Radius的包,所以是1813端口,但是这里表达的是tcp的协议。

#我首先用ssh tunnel 建了一个 1813端口的tcp port forward,远程一台服务器,运行mrq3的服务端模式。

# 在远程服务器上监听tcp:1813,远程服务器的目的是将到达tcp1813端口的tcp payload,转成udp的包。

# 这里有人会问了,目的服务器的udp端口呢,巧妙地方在后面的配置里面。

 

# Address of the tunnel server

tunnel = localhost:1813

 

#启用tcp并发连接的数量,目前最大是30个。

# Number of TCP connections to make (1-30)

connections = 1

 

#需要转发的目的服务器地址。

#原来目的服务器的地址再客户端指定的。作者巧妙借用了SSH TCP本地端口转发的思路,将目的服务器的配置通过Java远程对象,

#UDP tunnel建立的时候,通过认证后,将配置传给了服务端。

 

# First two of these are punkbuster and key auth

redirect1 = 1813 -> 192.168.10.13:1813

#redirect2 = 27952 -> 192.246.40.56:27952

 

server.txt

# 服务端模式,绑定TCP监听端口。

# Local IP and port to bind to (optional), use 0.0.0.0 for all local IP addresses

bindto = 0.0.0.0:1813

 

# Usernames and passwords

user1 = ech

pass1 = password

 

 

软件下载:

 

zenith518

2012/8/7

最近发现,作者已经将该主页下线了。
特此上传备份


2013/10/26

阅读(6540) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

liuhuan222020-01-17 20:44:07

socat可以替代