xb_gl_proxy 是一个隔离装置的双向穿透服务,可以看作是一个全双工的TCP链路。 用户可以在 任意一侧运行tcp服务,另一侧运行tcp客户端。基于此代理, 104协议,商用数据库访问等都很方便的实现隔离穿透。
结构图
2、配置及使用代理服务器程序
可执行程序: xb_gl_proxy
配置文件: gl_proxy.ini
对于高安全区(内网), 配置项有:
1:CHANNEL_REMOTE_SVR = 10.10.10.2:xxxx 是远端(外网)的 CHANNEL_SVR 在内网的映射
2:RECV_PATH = /home/xb/proxy_log 接收反向装置发送的文件 。
3:PROXY_PORT= xxxx 即适配器服务端口
当高安全区有用户作为客户端需要 tcp 链接到低区某台机器,配置 tcp转发接收器
4. zf1 = 4000 192.1.1.2:4000... 表示 用户tcp链接到本服务的4000端口,则会通过xb穿透机制,等效于链接到 低区的 用户机器 (192.1.1.2:4000)上
对于低安全区(外网),配置文件内的配置项有:
1:CHANNEL_SVR =0.0.0.0:9999
2: SEND_PATH= /.../... 反向代理转发装置 发送文件目录。
3:PROXY_PORT=29000代理服务器监听的端口,适配器端口
4. EFILE = 1 表示反向文件格式是e格式。
当低安全区有用户作为客户端需要 tcp 链接到高区,配置 tcp转发接收器
4. zf1= 4000 168.1.1.2:4000... 表示 用户tcp链接到本服务的4000端口,则会通过xb穿透机制,等效于链接到 高区的 用户机器 (168.1.1.2:4000)上
运行测试:
反向隔离装置,我们可以用一个脚本搬运文件来模拟,以便测试:
1 ./glzz 运行反向隔离模拟器
2. cd bin
./xb_gl_proxy
3. cd ../bin.outer
./xb_gl_proxy_out
4. cd ../bin
./xb_gl_tcp_test 22002 0.0.0.0:12002 5
这个测试程序, 同时担当 外网的服务端 和 内网客户端, 会运行 5个 线程,tcp链接发送数据给服务端 并 环回。
5. 使用 ssh 测试 tcp 穿透
ssh 127.0.0.1 -p 22003
6. ./gl_test_udp
测试 udp 的三种模式 ( 上传资源文档中有描述)
性能分析: 这个测试程序受到 脚本 glzz 中的 mv 性能影响 ( 0---20 ms, 平均10ms ) ,
当发送数据包大小超过32k, 受滑窗机制限制,交互会增多, 1秒中的报文数变少。
tcp链接数量基本不影响性能,只与 正向 tcp 带宽 和 反向文件 传输性能极限 正相关。