From c929a543db1e1bf20253598c880fd431273e7d15 Mon Sep 17 00:00:00 2001 From: Sakura <87719349@qq.com> Date: Sun, 1 Jul 2018 14:36:18 +0800 Subject: [PATCH 1/2] measure shadowsocks ping and add shadowsocks domian connect --- test/filters/TCP.ts | 4 +- test/shadowsocks/ShadowsocksFormatter.ts | 2 +- test/shadowsocks/ShadowsocksPing.ts | 49 ++++++++++++ test/shadowsocks/ShadowsocksTcpClient.ts | 19 +++-- test/test.ts | 25 +++++- test/util/TcpPing.ts | 96 ++++++++++++++++++++++++ 6 files changed, 187 insertions(+), 8 deletions(-) create mode 100644 test/shadowsocks/ShadowsocksPing.ts create mode 100644 test/util/TcpPing.ts diff --git a/test/filters/TCP.ts b/test/filters/TCP.ts index 08a677f..e0521be 100644 --- a/test/filters/TCP.ts +++ b/test/filters/TCP.ts @@ -8,6 +8,7 @@ import { import ShadowsocksTcpClient from "../shadowsocks/ShadowsocksTcpClient"; import TcpPacketFormatter from "../formatters/TcpPacketFormatter"; import * as EventEmitter from "events"; +import { ShadowsocksHeaderVersion } from "../shadowsocks/ShadowsocksFormatter"; // tslint:disable-next-line:interface-name interface TcpConnection { @@ -109,7 +110,8 @@ class TcpServerSession extends EventEmitter { const tcpAckpacket: Buffer = TcpPacketFormatter.build(ack); this.nativeWrite(tcpAckpacket); this.state = TcpConnectionState.HandShake_ACK; - this.shadowsocks.connect(this.connection.ipversion === EthernetType.IPv4, this.connection.localIp, this.connection.localPort); + const addressType: ShadowsocksHeaderVersion = this.connection.ipversion === EthernetType.IPv4?ShadowsocksHeaderVersion.IPv4:ShadowsocksHeaderVersion.IPv6; + this.shadowsocks.connect(addressType, this.connection.localIp, this.connection.localPort); this.shadowsocks.on("data", this.tcpShadowsocksData.bind(this)); this.shadowsocks.on("disconnected", this.tcpShadowsocksClosed.bind(this)); return; diff --git a/test/shadowsocks/ShadowsocksFormatter.ts b/test/shadowsocks/ShadowsocksFormatter.ts index 5492757..4dbdf82 100644 --- a/test/shadowsocks/ShadowsocksFormatter.ts +++ b/test/shadowsocks/ShadowsocksFormatter.ts @@ -85,7 +85,7 @@ export default class ShadowsocksFormatter { } for (let i = 0; i < ipBuffer.length; i++) { - buffer[i + (header.version === ShadowsocksHeaderVersion.Domain ? 2 : 1)] = ipBuffer[i]; + buffer[i + 1] = ipBuffer[i]; } buffer[buffer.length - 2] = ((header.port >> 8) & 0xff); buffer[buffer.length - 1] = (header.port & 0xff); diff --git a/test/shadowsocks/ShadowsocksPing.ts b/test/shadowsocks/ShadowsocksPing.ts new file mode 100644 index 0000000..50b0a48 --- /dev/null +++ b/test/shadowsocks/ShadowsocksPing.ts @@ -0,0 +1,49 @@ +import {Address} from 'cluster'; +import {ShadowsocksHeaderVersion} from './ShadowsocksFormatter'; +import ShadowsocksTcpClient from './ShadowsocksTcpClient'; +import TcpPing, {PingResult,IPing,Options} from './../util/TcpPing'; +import { IpcNetConnectOpts } from 'net'; + +export interface ShadowsocksOptions extends Options{ + method :string, + passwd :string, + attempts:number +} + +export interface ShadowsocksPingResult extends PingResult{ + available:boolean +} + +export default class ShadowsocksPing implements IPing{ + + public async ping(options:ShadowsocksOptions) { + const targetAddress : Buffer = Buffer.from("google.com"); + const targetPort : number = 80; + let shadowsocksTcpClient :ShadowsocksTcpClient; + let result:ShadowsocksPingResult; + return new Promise(async (reslove,reject)=>{ + result = await new TcpPing().ping(options) as ShadowsocksPingResult + if (result.min === undefined) { + reject(new Error("shadowsocks server unavailable!")) + return; + } + // verify shadowsocks config is vaild + shadowsocksTcpClient = new ShadowsocksTcpClient(options.address, options.port,options.passwd ,options.method, ShadowsocksHeaderVersion.Domain, targetAddress, targetPort) + shadowsocksTcpClient.once("connected", () => { + shadowsocksTcpClient.write(Buffer.from("GET / HTTP/1.1\r\n\r\n")); + }) + shadowsocksTcpClient.once("data", (data) => { + result.available = true; + reslove(result); + }) + shadowsocksTcpClient.connect(ShadowsocksHeaderVersion.Domain, targetAddress, targetPort); + setTimeout(() => { + shadowsocksTcpClient + .destroy(); + reject(new Error("shadowsocks server unavailable!")) + }, options.timeout); + }) + + + } +} \ No newline at end of file diff --git a/test/shadowsocks/ShadowsocksTcpClient.ts b/test/shadowsocks/ShadowsocksTcpClient.ts index b3ae758..9aa0656 100644 --- a/test/shadowsocks/ShadowsocksTcpClient.ts +++ b/test/shadowsocks/ShadowsocksTcpClient.ts @@ -3,9 +3,13 @@ import * as EventEmitter from "events"; import SSCrypto from "./crypto/SSCrypto"; import ShadowsocksFormatter, { ShadowsocksHeaderVersion } from "./ShadowsocksFormatter"; +import { Address } from "cluster"; + + export default class ShadowsocksTcpClient extends EventEmitter { + private method: any; private readonly socket: net.Socket = new net.Socket(); @@ -17,26 +21,31 @@ export default class ShadowsocksTcpClient extends EventEmitter { private host: string, private port: number, password: string, method: string, - private isIpv4Address: boolean = true, + private addressType: ShadowsocksHeaderVersion = ShadowsocksHeaderVersion.IPv4, private targetHost: Buffer = Buffer.allocUnsafe(0), - private targetPort: number = 0, + private targetPort: number = 0 ) { super(); this.method = SSCrypto.createCryptoMethodObject(method, password); this.socket.setNoDelay(true); } - public connect(isIpv4Address: boolean, targetHost?: Buffer, targetPort?: number) { + public connect(addressType: ShadowsocksHeaderVersion, targetHost?: Buffer, targetPort?: number) { + this.socket.on("data", this.onData.bind(this)); this.socket.on("error", this.disconnect.bind(this)); this.socket.connect(this.port, this.host, this.onConnected.bind(this)); + if(ShadowsocksHeaderVersion){ + this.addressType = addressType; + } if (targetHost) { + // if addressType is domain,the first byte is the domain length this.targetHost = targetHost; } if (targetPort) { this.targetPort = targetPort; } - this.isIpv4Address = isIpv4Address; + } public disconnect() { @@ -60,7 +69,7 @@ export default class ShadowsocksTcpClient extends EventEmitter { /* support ipv4, ipv6 without domain */ private onConnected() { const headerBuffer: Buffer = ShadowsocksFormatter.build({ - version: this.isIpv4Address ? ShadowsocksHeaderVersion.IPv4 : ShadowsocksHeaderVersion.IPv6, + version: this.addressType, address: this.targetHost, port: this.targetPort, }); diff --git a/test/test.ts b/test/test.ts index 0064f30..a6320a3 100644 --- a/test/test.ts +++ b/test/test.ts @@ -12,6 +12,7 @@ import PacketUtils from "./PacketUtils"; import * as cprocess from "child_process"; import * as NativeTypes from "./NativeTypes"; import DeviceConfiguration from "./DeviceConfiguration"; +import ShadowsocksPing, { ShadowsocksPingResult } from './shadowsocks/ShadowsocksPing'; // tslint:disable-next-line:no-var-requires const optimist = require("optimist") @@ -125,6 +126,22 @@ async function main() { process.exit(-1); } + /* verify shadowsocks server is available */ + try{ + const pingResult:ShadowsocksPingResult = await new ShadowsocksPing().ping({ + address:Config.get("ShadowsocksTcpHost"), + port:Config.get("ShadowsocksTcpPort"), + passwd:Config.get("ShadowsocksTcpPasswd"), + method:Config.get("ShadowsocksTcpMethod"), + attempts:10 + }); + console.log(`shadowsocks server:${pingResult.address} ping delay max: ${pingResult.max}ms,avg:${pingResult.avg},min:${pingResult.min}`) + }catch(error){ + console.log(error) + return; + } + + /* 设置OpenVPN网卡 */ if (!TAPControl.checkAdapterIsInstalled()) { console.log("Installing driver..."); @@ -145,9 +162,15 @@ async function main() { /* 获取默认网卡 */ const allDevicesInfo: Array = native.N_GetAllDevicesInfo() as Array; const defaultGateway: string = (native.N_GetIpforwardEntry() as Array)[0].nextHop; + // console.log(`${JSON.stringify(native.N_GetIpforwardEntry())}`) + // console.log(`默认网卡:${defaultGateway}`); + // console.log(`${JSON.stringify(allDevicesInfo)}`) let defaultDevice: NativeTypes.DeviceInfo = null; for (const device of allDevicesInfo) { - if (device.gatewayIpAddress === defaultGateway) { + // if (device.gatewayIpAddress === defaultGateway) { + // defaultDevice = device; + // } + if(device.index == tapInfo.index){ defaultDevice = device; } } diff --git a/test/util/TcpPing.ts b/test/util/TcpPing.ts new file mode 100644 index 0000000..58ebe1e --- /dev/null +++ b/test/util/TcpPing.ts @@ -0,0 +1,96 @@ +import {Socket} from 'net' + +export interface Options { + address : string, + port : number, + attempts?: number, + timeout?: number +} + +export interface PingResult { + address : string, + port : number, + attempts : number, + avg : number, + max : number, + min : number, + results : Array < PingResultItem > +} + +export interface PingResultItem { + seq : number, + time : number, + err?: any +} + +export interface IPing{ + ping(options:Options):any +} +export default class TcpPing implements IPing { + public ping(options : Options) : Promise < PingResult > { + return new Promise < PingResult > (function (reslove, reject) { + let i = 0; + let results : Array < PingResultItem >= []; + options.address = options.address || 'localhost'; + options.port = options.port || 80; + options.attempts = options.attempts || 10; + options.timeout = options.timeout || 5000; + let check = function (options) { + if (i < options.attempts) { + connect(options); + } else { + let avg = results.reduce(function (prev, curr) { + return prev + curr.time; + }, 0); + let max = results.reduce(function (prev, curr) { + return (prev > curr.time) + ? prev + : curr.time; + }, results[0].time); + let min = results.reduce(function (prev, curr) { + return (prev < curr.time) + ? prev + : curr.time; + }, results[0].time); + avg = avg / results.length; + let out : PingResult = { + address: options.address, + port: options.port, + attempts: options.attempts, + avg: avg, + max: max, + min: min, + results: results + }; + reslove(out); + } + }; + + let connect = function (options) { + let s = new Socket(); + let start = process.hrtime(); + s.connect(options.port, options.address, function () { + let time_arr = process.hrtime(start); + let time = (time_arr[0] * 1e9 + time_arr[1]) / 1e6; + results.push({seq: i, time: time}); + s.destroy(); + i++; + check(options); + }); + s.on('error', function (e) { + results.push({seq: i, time: undefined, err: e}); + s.destroy(); + i++; + check(options); + }); + s.setTimeout(options.timeout, function () { + results.push({seq: i, time: undefined, err: Error('Request timeout')}); + s.destroy(); + i++; + check(options); + }); + }; + connect(options); + }); + } +} \ No newline at end of file From 2e3c56bc350bb2c5496b5956138c3411f5bb0b35 Mon Sep 17 00:00:00 2001 From: Sakura <87719349@qq.com> Date: Sun, 8 Jul 2018 21:40:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0ping=E6=B5=8B=E8=AF=95=E3=80=82=E6=8B=86=E5=88=86TCP?= =?UTF-8?q?=E5=92=8CShadowsocks=E3=80=82=E9=BB=98=E8=AE=A4=E4=B8=8D?= =?UTF-8?q?=E6=89=93=E5=BC=80UDP=E5=A4=9A=E5=80=8D=E5=8F=91=E5=8C=85?= =?UTF-8?q?=EF=BC=88=E8=BF=99=E4=BC=9A=E5=AF=BC=E8=87=B4=E5=9C=A8=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=AE=89=E8=A3=85wincap=E7=9A=84=E7=94=B5=E8=84=91?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E9=94=99=EF=BC=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- driver/OemVista.inf | 382 +++++++++++------------ driver/OemWin2k.inf | 187 +++++++++++ driver/tapinstall.exe | Bin 92304 -> 452096 bytes test/filters/TCP.ts | 208 +++++++----- test/shadowsocks/ShadowsocksPing.ts | 13 +- test/shadowsocks/ShadowsocksTcpClient.ts | 33 +- test/test.ts | 37 +-- test/tunnel/ShadowsocksTunnel.ts | 71 +++++ test/util/TcpPing.ts | 6 +- 9 files changed, 625 insertions(+), 312 deletions(-) create mode 100644 driver/OemWin2k.inf create mode 100644 test/tunnel/ShadowsocksTunnel.ts diff --git a/driver/OemVista.inf b/driver/OemVista.inf index d92e255..628a215 100644 --- a/driver/OemVista.inf +++ b/driver/OemVista.inf @@ -1,191 +1,191 @@ -; **************************************************************************** -; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. * -; * This program is free software; you can redistribute it and/or modify * -; * it under the terms of the GNU General Public License version 2 * -; * as published by the Free Software Foundation. * -; **************************************************************************** - -; SYNTAX CHECKER -; cd \WINDDK\3790\tools\chkinf -; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf -; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm - -; INSTALL/REMOVE DRIVER -; tapinstall install OemVista.inf tapoas -; tapinstall update OemVista.inf tapoas -; tapinstall remove tapoas - -;********************************************************* -; Note to Developers: -; -; If you are bundling the TAP-Windows driver with your app, -; you should try to rename it in such a way that it will -; not collide with other instances of TAP-Windows defined -; by other apps. Multiple versions of the TAP-Windows -; driver, each installed by different apps, can coexist -; on the same machine if you follow these guidelines. -; NOTE: these instructions assume you are editing the -; generated OemWin2k.inf file, not the source -; OemWin2k.inf.in file which is preprocessed by winconfig -; and uses macro definitions from settings.in. -; -; (1) Rename all tapXXXX instances in this file to -; something different (use at least 5 characters -; for this name!) -; (2) Change the "!define TAP" definition in openvpn.nsi -; to match what you changed tapXXXX to. -; (3) Change TARGETNAME in SOURCES to match what you -; changed tapXXXX to. -; (4) Change TAP_COMPONENT_ID in common.h to match what -; you changed tapXXXX to. -; (5) Change SZDEPENDENCIES in service.h to match what -; you changed tapXXXX to. -; (6) Change DeviceDescription and Provider strings. -; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you -; set DeviceDescription to. -; -;********************************************************* - -[Version] - Signature = "$Windows NT$" - CatalogFile = tap0901.cat - ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} - Provider = %Provider% - Class = Net - -; This version number should match the version -; number given in SOURCES. - DriverVer=04/21/2016,9.00.00.21 - -[Strings] - DeviceDescription = "TAP-Windows Adapter V9" - Provider = "TAP-Windows Provider V9" - -;---------------------------------------------------------------- -; Manufacturer + Product Section (Done) -;---------------------------------------------------------------- -[Manufacturer] - %Provider% = tap0901, NTamd64 - -[tap0901.NTamd64] - %DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated - %DeviceDescription% = tap0901.ndi, tap0901 ; Legacy - -;--------------------------------------------------------------- -; Driver Section (Done) -;--------------------------------------------------------------- - -;----------------- Characteristics ------------ -; NCF_PHYSICAL = 0x04 -; NCF_VIRTUAL = 0x01 -; NCF_SOFTWARE_ENUMERATED = 0x02 -; NCF_HIDDEN = 0x08 -; NCF_NO_SERVICE = 0x10 -; NCF_HAS_UI = 0x80 -;----------------- Characteristics ------------ - -[tap0901.ndi] - CopyFiles = tap0901.driver, tap0901.files - AddReg = tap0901.reg - AddReg = tap0901.params.reg - Characteristics = - *IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD - *MediaType = 0x0 ; NdisMedium802_3 - *PhysicalMediaType = 14 ; NdisPhysicalMedium802_3 - -[tap0901.ndi.Services] - AddService = tap0901, 2, tap0901.service - -[tap0901.reg] - HKR, Ndi, Service, 0, "tap0901" - HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" - HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" - HKR, , Manufacturer, 0, "%Provider%" - HKR, , ProductName, 0, "%DeviceDescription%" - -[tap0901.params.reg] - HKR, Ndi\params\MTU, ParamDesc, 0, "MTU" - HKR, Ndi\params\MTU, Type, 0, "int" - HKR, Ndi\params\MTU, Default, 0, "1500" - HKR, Ndi\params\MTU, Optional, 0, "0" - HKR, Ndi\params\MTU, Min, 0, "100" - HKR, Ndi\params\MTU, Max, 0, "1500" - HKR, Ndi\params\MTU, Step, 0, "1" - HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status" - HKR, Ndi\params\MediaStatus, Type, 0, "enum" - HKR, Ndi\params\MediaStatus, Default, 0, "0" - HKR, Ndi\params\MediaStatus, Optional, 0, "0" - HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled" - HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected" - HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address" - HKR, Ndi\params\MAC, Type, 0, "edit" - HKR, Ndi\params\MAC, Optional, 0, "1" - HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access" - HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum" - HKR, Ndi\params\AllowNonAdmin, Default, 0, "1" - HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0" - HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed" - HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed" - -;---------------------------------------------------------------- -; Service Section -;---------------------------------------------------------------- - -;---------- Service Type ------------- -; SERVICE_KERNEL_DRIVER = 0x01 -; SERVICE_WIN32_OWN_PROCESS = 0x10 -;---------- Service Type ------------- - -;---------- Start Mode --------------- -; SERVICE_BOOT_START = 0x0 -; SERVICE_SYSTEM_START = 0x1 -; SERVICE_AUTO_START = 0x2 -; SERVICE_DEMAND_START = 0x3 -; SERVICE_DISABLED = 0x4 -;---------- Start Mode --------------- - -[tap0901.service] - DisplayName = %DeviceDescription% - ServiceType = 1 - StartType = 3 - ErrorControl = 1 - LoadOrderGroup = NDIS - ServiceBinary = %12%\tap0901.sys - -;----------------------------------------------------------------- -; File Installation -;----------------------------------------------------------------- - -;----------------- Copy Flags ------------ -; COPYFLG_NOSKIP = 0x02 -; COPYFLG_NOVERSIONCHECK = 0x04 -;----------------- Copy Flags ------------ - -; SourceDisksNames -; diskid = description[, [tagfile] [, , subdir]] -; 1 = "Intel Driver Disk 1",e100bex.sys,, - -[SourceDisksNames] - 1 = %DeviceDescription%, tap0901.sys - -; SourceDisksFiles -; filename_on_source = diskID[, [subdir][, size]] -; e100bex.sys = 1,, ; on distribution disk 1 - -[SourceDisksFiles] -tap0901.sys = 1 - -[DestinationDirs] - tap0901.files = 11 - tap0901.driver = 12 - -[tap0901.files] -; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK -; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -[tap0901.driver] - tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -;--------------------------------------------------------------- -; End -;--------------------------------------------------------------- +; **************************************************************************** +; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. * +; * This program is free software; you can redistribute it and/or modify * +; * it under the terms of the GNU General Public License version 2 * +; * as published by the Free Software Foundation. * +; **************************************************************************** + +; SYNTAX CHECKER +; cd \WINDDK\3790\tools\chkinf +; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf +; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm + +; INSTALL/REMOVE DRIVER +; tapinstall install OemVista.inf tapoas +; tapinstall update OemVista.inf tapoas +; tapinstall remove tapoas + +;********************************************************* +; Note to Developers: +; +; If you are bundling the TAP-Windows driver with your app, +; you should try to rename it in such a way that it will +; not collide with other instances of TAP-Windows defined +; by other apps. Multiple versions of the TAP-Windows +; driver, each installed by different apps, can coexist +; on the same machine if you follow these guidelines. +; NOTE: these instructions assume you are editing the +; generated OemWin2k.inf file, not the source +; OemWin2k.inf.in file which is preprocessed by winconfig +; and uses macro definitions from settings.in. +; +; (1) Rename all tapXXXX instances in this file to +; something different (use at least 5 characters +; for this name!) +; (2) Change the "!define TAP" definition in openvpn.nsi +; to match what you changed tapXXXX to. +; (3) Change TARGETNAME in SOURCES to match what you +; changed tapXXXX to. +; (4) Change TAP_COMPONENT_ID in common.h to match what +; you changed tapXXXX to. +; (5) Change SZDEPENDENCIES in service.h to match what +; you changed tapXXXX to. +; (6) Change DeviceDescription and Provider strings. +; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you +; set DeviceDescription to. +; +;********************************************************* + +[Version] + Signature = "$Windows NT$" + CatalogFile = tap0901.cat + ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} + Provider = %Provider% + Class = Net + +; This version number should match the version +; number given in SOURCES. + DriverVer=04/21/2016,9.00.00.21 + +[Strings] + DeviceDescription = "TAP-Windows Adapter V9" + Provider = "TAP-Windows Provider V9" + +;---------------------------------------------------------------- +; Manufacturer + Product Section (Done) +;---------------------------------------------------------------- +[Manufacturer] + %Provider% = tap0901, NTamd64 + +[tap0901.NTamd64] + %DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated + %DeviceDescription% = tap0901.ndi, tap0901 ; Legacy + +;--------------------------------------------------------------- +; Driver Section (Done) +;--------------------------------------------------------------- + +;----------------- Characteristics ------------ +; NCF_PHYSICAL = 0x04 +; NCF_VIRTUAL = 0x01 +; NCF_SOFTWARE_ENUMERATED = 0x02 +; NCF_HIDDEN = 0x08 +; NCF_NO_SERVICE = 0x10 +; NCF_HAS_UI = 0x80 +;----------------- Characteristics ------------ + +[tap0901.ndi] + CopyFiles = tap0901.driver, tap0901.files + AddReg = tap0901.reg + AddReg = tap0901.params.reg + Characteristics = + *IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD + *MediaType = 0x0 ; NdisMedium802_3 + *PhysicalMediaType = 14 ; NdisPhysicalMedium802_3 + +[tap0901.ndi.Services] + AddService = tap0901, 2, tap0901.service + +[tap0901.reg] + HKR, Ndi, Service, 0, "tap0901" + HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" + HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" + HKR, , Manufacturer, 0, "%Provider%" + HKR, , ProductName, 0, "%DeviceDescription%" + +[tap0901.params.reg] + HKR, Ndi\params\MTU, ParamDesc, 0, "MTU" + HKR, Ndi\params\MTU, Type, 0, "int" + HKR, Ndi\params\MTU, Default, 0, "1500" + HKR, Ndi\params\MTU, Optional, 0, "0" + HKR, Ndi\params\MTU, Min, 0, "100" + HKR, Ndi\params\MTU, Max, 0, "1500" + HKR, Ndi\params\MTU, Step, 0, "1" + HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status" + HKR, Ndi\params\MediaStatus, Type, 0, "enum" + HKR, Ndi\params\MediaStatus, Default, 0, "0" + HKR, Ndi\params\MediaStatus, Optional, 0, "0" + HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled" + HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected" + HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address" + HKR, Ndi\params\MAC, Type, 0, "edit" + HKR, Ndi\params\MAC, Optional, 0, "1" + HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access" + HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum" + HKR, Ndi\params\AllowNonAdmin, Default, 0, "1" + HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0" + HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed" + HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed" + +;---------------------------------------------------------------- +; Service Section +;---------------------------------------------------------------- + +;---------- Service Type ------------- +; SERVICE_KERNEL_DRIVER = 0x01 +; SERVICE_WIN32_OWN_PROCESS = 0x10 +;---------- Service Type ------------- + +;---------- Start Mode --------------- +; SERVICE_BOOT_START = 0x0 +; SERVICE_SYSTEM_START = 0x1 +; SERVICE_AUTO_START = 0x2 +; SERVICE_DEMAND_START = 0x3 +; SERVICE_DISABLED = 0x4 +;---------- Start Mode --------------- + +[tap0901.service] + DisplayName = %DeviceDescription% + ServiceType = 1 + StartType = 3 + ErrorControl = 1 + LoadOrderGroup = NDIS + ServiceBinary = %12%\tap0901.sys + +;----------------------------------------------------------------- +; File Installation +;----------------------------------------------------------------- + +;----------------- Copy Flags ------------ +; COPYFLG_NOSKIP = 0x02 +; COPYFLG_NOVERSIONCHECK = 0x04 +;----------------- Copy Flags ------------ + +; SourceDisksNames +; diskid = description[, [tagfile] [, , subdir]] +; 1 = "Intel Driver Disk 1",e100bex.sys,, + +[SourceDisksNames] + 1 = %DeviceDescription%, tap0901.sys + +; SourceDisksFiles +; filename_on_source = diskID[, [subdir][, size]] +; e100bex.sys = 1,, ; on distribution disk 1 + +[SourceDisksFiles] +tap0901.sys = 1 + +[DestinationDirs] + tap0901.files = 11 + tap0901.driver = 12 + +[tap0901.files] +; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK +; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK + +[tap0901.driver] + tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK + +;--------------------------------------------------------------- +; End +;--------------------------------------------------------------- diff --git a/driver/OemWin2k.inf b/driver/OemWin2k.inf new file mode 100644 index 0000000..3a0398c --- /dev/null +++ b/driver/OemWin2k.inf @@ -0,0 +1,187 @@ +; **************************************************************************** +; * Copyright (C) 2002-2008 OpenVPN Technologies, Inc. * +; * This program is free software; you can redistribute it and/or modify * +; * it under the terms of the GNU General Public License version 2 * +; * as published by the Free Software Foundation. * +; **************************************************************************** + +; SYNTAX CHECKER +; cd \WINDDK\3790\tools\chkinf +; chkinf c:\src\openvpn\tap-win32\i386\oemwin2k.inf +; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm + +; INSTALL/REMOVE DRIVER +; tapinstall install OemWin2k.inf TAP0901 +; tapinstall update OemWin2k.inf TAP0901 +; tapinstall remove TAP0901 + +;********************************************************* +; Note to Developers: +; +; If you are bundling the TAP-Win32 driver with your app, +; you should try to rename it in such a way that it will +; not collide with other instances of TAP-Win32 defined +; by other apps. Multiple versions of the TAP-Win32 +; driver, each installed by different apps, can coexist +; on the same machine if you follow these guidelines. +; NOTE: these instructions assume you are editing the +; generated OemWin2k.inf file, not the source +; OemWin2k.inf.in file which is preprocessed by winconfig +; and uses macro definitions from settings.in. +; +; (1) Rename all tapXXXX instances in this file to +; something different (use at least 5 characters +; for this name!) +; (2) Change the "!define TAP" definition in openvpn.nsi +; to match what you changed tapXXXX to. +; (3) Change TARGETNAME in SOURCES to match what you +; changed tapXXXX to. +; (4) Change TAP_COMPONENT_ID in common.h to match what +; you changed tapXXXX to. +; (5) Change SZDEPENDENCIES in service.h to match what +; you changed tapXXXX to. +; (6) Change DeviceDescription and Provider strings. +; (7) Change PRODUCT_STRING in constants.h to what you +; set DeviceDescription to. +; +;********************************************************* + +[Version] + Signature = "$Windows NT$" + CatalogFile = tap0901.cat + ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} + Provider = %Provider% + Class = Net + +; This version number should match the version +; number given in SOURCES. + DriverVer=01/22/2008,9.00.00.4 + +[Strings] + DeviceDescription = "TAP-Win32 Adapter V9" + Provider = "TAP-Win32 Provider V9" + +;---------------------------------------------------------------- +; Manufacturer + Product Section (Done) +;---------------------------------------------------------------- +[Manufacturer] + %Provider% = tap0901, NTamd64 + +[tap0901.NTamd64] + %DeviceDescription% = tap0901.ndi, tap0901 + +;--------------------------------------------------------------- +; Driver Section (Done) +;--------------------------------------------------------------- + +;----------------- Characteristics ------------ +; NCF_PHYSICAL = 0x04 +; NCF_VIRTUAL = 0x01 +; NCF_SOFTWARE_ENUMERATED = 0x02 +; NCF_HIDDEN = 0x08 +; NCF_NO_SERVICE = 0x10 +; NCF_HAS_UI = 0x80 +;----------------- Characteristics ------------ + +[tap0901.ndi] + CopyFiles = tap0901.driver, tap0901.files + AddReg = tap0901.reg + AddReg = tap0901.params.reg + Characteristics = 0x81 + +[tap0901.ndi.Services] + AddService = tap0901, 2, tap0901.service + +[tap0901.reg] + HKR, Ndi, Service, 0, "tap0901" + HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" + HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" + HKR, , Manufacturer, 0, "%Provider%" + HKR, , ProductName, 0, "%DeviceDescription%" + +[tap0901.params.reg] + HKR, Ndi\params\MTU, ParamDesc, 0, "MTU" + HKR, Ndi\params\MTU, Type, 0, "int" + HKR, Ndi\params\MTU, Default, 0, "1500" + HKR, Ndi\params\MTU, Optional, 0, "0" + HKR, Ndi\params\MTU, Min, 0, "100" + HKR, Ndi\params\MTU, Max, 0, "1500" + HKR, Ndi\params\MTU, Step, 0, "1" + HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status" + HKR, Ndi\params\MediaStatus, Type, 0, "enum" + HKR, Ndi\params\MediaStatus, Default, 0, "0" + HKR, Ndi\params\MediaStatus, Optional, 0, "0" + HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled" + HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected" + HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address" + HKR, Ndi\params\MAC, Type, 0, "edit" + HKR, Ndi\params\MAC, Optional, 0, "1" + HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access" + HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum" + HKR, Ndi\params\AllowNonAdmin, Default, 0, "1" + HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0" + HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed" + HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed" + +;---------------------------------------------------------------- +; Service Section +;---------------------------------------------------------------- + +;---------- Service Type ------------- +; SERVICE_KERNEL_DRIVER = 0x01 +; SERVICE_WIN32_OWN_PROCESS = 0x10 +;---------- Service Type ------------- + +;---------- Start Mode --------------- +; SERVICE_BOOT_START = 0x0 +; SERVICE_SYSTEM_START = 0x1 +; SERVICE_AUTO_START = 0x2 +; SERVICE_DEMAND_START = 0x3 +; SERVICE_DISABLED = 0x4 +;---------- Start Mode --------------- + +[tap0901.service] + DisplayName = %DeviceDescription% + ServiceType = 1 + StartType = 3 + ErrorControl = 1 + LoadOrderGroup = NDIS + ServiceBinary = %12%\tap0901.sys + +;----------------------------------------------------------------- +; File Installation +;----------------------------------------------------------------- + +;----------------- Copy Flags ------------ +; COPYFLG_NOSKIP = 0x02 +; COPYFLG_NOVERSIONCHECK = 0x04 +;----------------- Copy Flags ------------ + +; SourceDisksNames +; diskid = description[, [tagfile] [, , subdir]] +; 1 = "Intel Driver Disk 1",e100bex.sys,, + +[SourceDisksNames] + 1 = %DeviceDescription%, tap0901.sys + +; SourceDisksFiles +; filename_on_source = diskID[, [subdir][, size]] +; e100bex.sys = 1,, ; on distribution disk 1 + +[SourceDisksFiles] +tap0901.sys = 1 + +[DestinationDirs] + tap0901.files = 11 + tap0901.driver = 12 + +[tap0901.files] +; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK +; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK + +[tap0901.driver] + tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK + +;--------------------------------------------------------------- +; End +;--------------------------------------------------------------- diff --git a/driver/tapinstall.exe b/driver/tapinstall.exe index a1ebb9f8a555f068ecb4f99d104309b7ca3f6f09..b18b26cf92e09f58753094c926429eeb96318c26 100644 GIT binary patch literal 452096 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 void> = []; - constructor( - public connection: TcpConnection, - private nativeWrite: (data: Buffer) => void) { - + constructor(public connection: TcpConnection, + private nativeWrite: (data: Buffer) => void, + ) { super(); + this.setMaxListeners(1); this.state = TcpConnectionState.HandShake; this.currentIdNum = 100; - this.routers[TcpConnectionState.HandShake] = this.tcpHandshark.bind(this); - this.routers[TcpConnectionState.HandShake_ACK] = this.tcpHandshark.bind(this); - this.routers[TcpConnectionState.Data] = this.tcpClientData.bind(this); - this.routers[TcpConnectionState.RemoteCloseWating] = this.tcpClientRequestToClose.bind(this); - this.routers[TcpConnectionState.RemoteCloseWating_1] = this.tcpClientRequestToClose.bind(this); - this.routers[TcpConnectionState.LocalCloseWating] = this.tcpShadowsocksClosed.bind(this); - this.routers[TcpConnectionState.LocalCloseWating_1] = this.tcpShadowsocksClosed.bind(this); - this.shadowsocks = new ShadowsocksTcpClient( - Config.get("ShadowsocksTcpHost"), - Config.get("ShadowsocksTcpPort"), - Config.get("ShadowsocksTcpPasswd"), - Config.get("ShadowsocksTcpMethod"), - ); + this.routers[TcpConnectionState.HandShake] = this.handSharkFSM.bind(this); + this.routers[TcpConnectionState.HandShake_ACK] = this.handSharkFSM.bind(this); + this.routers[TcpConnectionState.Data] = this.dataFSM.bind(this); + this.routers[TcpConnectionState.RemoteCloseWating] = this.closeFSM.bind(this); + this.routers[TcpConnectionState.RemoteCloseWating_1] = this.closeFSM.bind(this); + this.routers[TcpConnectionState.LocalCloseWating] = this.closeFSM.bind(this); + this.routers[TcpConnectionState.LocalCloseWating_1] = this.closeFSM.bind(this); } public dataRouter(data: Buffer, tcpPacket: TcpPacket) { @@ -91,7 +89,7 @@ class TcpServerSession extends EventEmitter { } } - public tcpHandshark(data: Buffer, tcpPacket: TcpPacket) { + private handSharkFSM(data: Buffer, tcpPacket: TcpPacket){ if (this.state === TcpConnectionState.HandShake) { if (!tcpPacket.SYN) { return; @@ -110,13 +108,11 @@ class TcpServerSession extends EventEmitter { const tcpAckpacket: Buffer = TcpPacketFormatter.build(ack); this.nativeWrite(tcpAckpacket); this.state = TcpConnectionState.HandShake_ACK; - const addressType: ShadowsocksHeaderVersion = this.connection.ipversion === EthernetType.IPv4?ShadowsocksHeaderVersion.IPv4:ShadowsocksHeaderVersion.IPv6; - this.shadowsocks.connect(addressType, this.connection.localIp, this.connection.localPort); - this.shadowsocks.on("data", this.tcpShadowsocksData.bind(this)); - this.shadowsocks.on("disconnected", this.tcpShadowsocksClosed.bind(this)); + if(TCP_LOG_ENABLE)console.log("handshark") + this.emit('connected'); return; } - + if (this.state === TcpConnectionState.HandShake_ACK) { if (tcpPacket.acknowledgmentNumber !== this.currentSeqNum + 1) { return; @@ -125,11 +121,15 @@ class TcpServerSession extends EventEmitter { this.currentAckNum = tcpPacket.sequenceNumber; this.currentSeqNum = tcpPacket.acknowledgmentNumber; this.currentWindowSize = tcpPacket.window; + if(TCP_LOG_ENABLE)console.log("handshark ack") return; } } - public tcpClientData(data: Buffer, tcpPacket: TcpPacket) { + private dataFSM(data: Buffer, tcpPacket: TcpPacket) { + if(this.state !== TcpConnectionState.Data){ + return; + } if (tcpPacket.FIN) { this.state = TcpConnectionState.RemoteCloseWating; this.dataRouter(data, tcpPacket); @@ -151,20 +151,34 @@ class TcpServerSession extends EventEmitter { ack = Object.assign(this.buildBaseTcpPacket(), ack); const tcpAckpacket: Buffer = TcpPacketFormatter.build(ack); this.nativeWrite(tcpAckpacket); - this.shadowsocks.write(tcpPacket.payload); + // if(TCP_LOG_ENABLE)console.log("recive data") + this.emit("read",tcpPacket.payload) } /* 只接受最新的ack包作为更新窗口大小 */ if (tcpPacket.acknowledgmentNumber === this.currentSeqNum) { this.currentWindowSize = tcpPacket.window; - this.tcpShadowsocksData(); } - - // console.log(this.currentSeqNum, this.currentAckNum, this.currentWindowSize); } - // TcpConnectionState.RemoteCloseWating - public tcpClientRequestToClose(data: Buffer, tcpPacket: TcpPacket) { + private closeFSM(data: Buffer, tcpPacket: TcpPacket) { + + if (this.state === TcpConnectionState.LocalCloseWating_1 && tcpPacket.FIN && tcpPacket.ACK) { + this.currentSeqNum = tcpPacket.acknowledgmentNumber; + this.currentAckNum = tcpPacket.sequenceNumber + 1; + let fin: TcpPacket = { + sequenceNumber: this.currentSeqNum, + acknowledgmentNumber: this.currentAckNum, + totalLength: 40, + ACK: true, + }; + fin = Object.assign(this.buildBaseTcpPacket(), fin); + const tcpFinPacket: Buffer = TcpPacketFormatter.build(fin); + this.nativeWrite(tcpFinPacket); + this.state = TcpConnectionState.Closed; + this.emit("closed"); + } + if (this.state === TcpConnectionState.RemoteCloseWating) { this.currentSeqNum = tcpPacket.acknowledgmentNumber; this.currentAckNum = tcpPacket.sequenceNumber + 1; @@ -177,8 +191,6 @@ class TcpServerSession extends EventEmitter { }; fin = Object.assign(this.buildBaseTcpPacket(), fin); const tcpFinPacket: Buffer = TcpPacketFormatter.build(fin); - this.shadowsocks.removeAllListeners(); - this.shadowsocks.disconnect(); this.sendingBuffers = []; this.nativeWrite(tcpFinPacket); this.state = TcpConnectionState.RemoteCloseWating_1; @@ -192,19 +204,18 @@ class TcpServerSession extends EventEmitter { } } - public tcpShadowsocksData(data?: Buffer) { + public write(data?: Buffer) { + if(TCP_LOG_ENABLE)console.log(`tcp write current state is ${this.state == TcpConnectionState.Data ? "data" : "not data"}`); if (this.state !== TcpConnectionState.Data) { return; } if (data !== undefined) { this.sendingBuffers = this.sendingBuffers.concat(this.slicePacket(data, 1446)); } - this.shadowsocks.pause(true); if (this.currentWindowSize <= 0) { return; } if (this.sendingBuffers.length === 0) { - this.shadowsocks.pause(false); return; } @@ -214,7 +225,7 @@ class TcpServerSession extends EventEmitter { this.sendingBuffers.shift(); this.currentWindowSize = this.currentWindowSize - waitingBuffer.length; this.sendDataPacket(waitingBuffer); - this.tcpShadowsocksData(); + this.write(); } else { const smallerData: Buffer = waitingBuffer.slice(0, this.currentWindowSize); this.sendingBuffers[0] = waitingBuffer.slice(this.currentWindowSize); @@ -223,25 +234,9 @@ class TcpServerSession extends EventEmitter { } } - public sendDataPacket(data: Buffer, log: boolean = false) { - let dataPacket: TcpPacket = { - sequenceNumber: this.currentSeqNum, - acknowledgmentNumber: this.currentAckNum, - ACK: true, - PSH: true, - payload: data, - }; - dataPacket = Object.assign(this.buildBaseTcpPacket(data.length), dataPacket); - this.currentSeqNum = dataPacket.sequenceNumber + dataPacket.payload.length; - const fullPacket = TcpPacketFormatter.build(dataPacket); - this.nativeWrite(fullPacket); - } - - public tcpShadowsocksClosed(data: Buffer, tcpPacket: TcpPacket) { - + public close(){ if (this.state === TcpConnectionState.Data) { this.sendingBuffers = []; - this.shadowsocks.removeAllListeners(); this.state = TcpConnectionState.LocalCloseWating; let fin: TcpPacket = { sequenceNumber: this.currentSeqNum, @@ -256,29 +251,26 @@ class TcpServerSession extends EventEmitter { this.state = TcpConnectionState.LocalCloseWating_1; return; } + } - if (this.state === TcpConnectionState.LocalCloseWating_1 && tcpPacket.FIN && tcpPacket.ACK) { - this.currentSeqNum = tcpPacket.acknowledgmentNumber; - this.currentAckNum = tcpPacket.sequenceNumber + 1; - let fin: TcpPacket = { - sequenceNumber: this.currentSeqNum, - acknowledgmentNumber: this.currentAckNum, - totalLength: 40, - ACK: true, - }; - fin = Object.assign(this.buildBaseTcpPacket(), fin); - const tcpFinPacket: Buffer = TcpPacketFormatter.build(fin); - this.nativeWrite(tcpFinPacket); - this.state = TcpConnectionState.Closed; - this.emit("closed"); - } + public sendDataPacket(data: Buffer, log: boolean = false) { + let dataPacket: TcpPacket = { + sequenceNumber: this.currentSeqNum, + acknowledgmentNumber: this.currentAckNum, + ACK: true, + PSH: true, + payload: data, + }; + dataPacket = Object.assign(this.buildBaseTcpPacket(data.length), dataPacket); + this.currentSeqNum = dataPacket.sequenceNumber + dataPacket.payload.length; + const fullPacket = TcpPacketFormatter.build(dataPacket); + this.nativeWrite(fullPacket); } public tcpRst(data: Buffer, tcpPacket: TcpPacket) { this.sendingBuffers = []; - this.shadowsocks.removeAllListeners(); - this.shadowsocks.destroy(); this.state = TcpConnectionState.Closed; + if(TCP_LOG_ENABLE)console.log("close") this.emit("closed"); } @@ -349,12 +341,70 @@ class TcpServerSession extends EventEmitter { const connections = new Map(); -export default function(data: Buffer, write: (data: Buffer) => void, next: () => void) { +export class TcpStack extends EventEmitter{ + public connections = new Map(); + constructor( + private output:(data:Buffer)=>void, + ){ + super(); + this.setMaxListeners(1); + } + + public input(data:Buffer){ + /** 跳过非tcp协议的数据包处理 */ + if (PacketUtils.isIPv4(data)) { + if (!PacketUtils.isTCP(data)) { + return; + } + } else if (PacketUtils.isIPv6(data)) { + if (!PacketUtils.isTCPForIpv6(data)) { + return; + } + } else { + return; + } + + const tcpPacket: TcpPacket = TcpPacketFormatter.format(data); + const tcpConnectionId: string = PacketUtils.getConnectionId(tcpPacket); + + let session = connections.get(tcpConnectionId); + if (session === undefined || session == null) { + session = new TcpServerSession({ + ipversion: tcpPacket.version === 4 ? EthernetType.IPv4 : EthernetType.IPv6, + localAddress: tcpPacket.sourceAddress, + targetAddress: tcpPacket.destinaltionAddress, + localIp: tcpPacket.destinationIp, + targetIp: tcpPacket.sourceIp, + localPort: tcpPacket.destinationPort, + targetPort: tcpPacket.sourcePort, + localReceiveWindow: 65535, + targetReceiveWindow: tcpPacket.window, + }, this.output); + session.once("closed", () => { + delete connections[tcpConnectionId]; + // if(TCP_LOG_ENABLE)console.log("bye bye", PacketUtils.ipAddressToString(tcpPacket.destinationIp), "source port", session.connection.targetPort); + }); + connections.set(tcpConnectionId, session); + if(TCP_LOG_ENABLE)console.log("got new session") + // if(TCP_LOG_ENABLE)console.log("connect", PacketUtils.ipAddressToString(tcpPacket.destinationIp), "source port", tcpPacket.sourcePort); + session.once("connected",()=>{ + this.emit("accept",session); + }) + } + session.dataRouter(data, tcpPacket); + } +} + +export default function (data: Buffer, write: (data: Buffer) => void, next: () => void) { if (PacketUtils.isIPv4(data)) { - if (!PacketUtils.isTCP(data)) { return next(); } + if (!PacketUtils.isTCP(data)) { + return next(); + } } else if (PacketUtils.isIPv6(data)) { - if (!PacketUtils.isTCPForIpv6(data)) { return next(); } + if (!PacketUtils.isTCPForIpv6(data)) { + return next(); + } } else { return next(); } @@ -377,10 +427,10 @@ export default function(data: Buffer, write: (data: Buffer) => void, next: () => }, write); session.once("closed", () => { delete connections[tcpConnectionId]; - // console.log("bye bye", PacketUtils.ipAddressToString(tcpPacket.destinationIp), "source port", session.connection.targetPort); + // if(TCP_LOG_ENABLE)console.log("bye bye", PacketUtils.ipAddressToString(tcpPacket.destinationIp), "source port", session.connection.targetPort); }); connections.set(tcpConnectionId, session); - // console.log("connect", PacketUtils.ipAddressToString(tcpPacket.destinationIp), "source port", tcpPacket.sourcePort); + // if(TCP_LOG_ENABLE)console.log("connect", PacketUtils.ipAddressToString(tcpPacket.destinationIp), "source port", tcpPacket.sourcePort); } session.dataRouter(data, tcpPacket); } diff --git a/test/shadowsocks/ShadowsocksPing.ts b/test/shadowsocks/ShadowsocksPing.ts index 50b0a48..b3fb996 100644 --- a/test/shadowsocks/ShadowsocksPing.ts +++ b/test/shadowsocks/ShadowsocksPing.ts @@ -1,10 +1,10 @@ import {Address} from 'cluster'; import {ShadowsocksHeaderVersion} from './ShadowsocksFormatter'; import ShadowsocksTcpClient from './ShadowsocksTcpClient'; -import TcpPing, {PingResult,IPing,Options} from './../util/TcpPing'; +import TcpPing, {PingResult,IPing,PingOptions} from './../util/TcpPing'; import { IpcNetConnectOpts } from 'net'; -export interface ShadowsocksOptions extends Options{ +export interface ShadowsocksPingOptions extends PingOptions{ method :string, passwd :string, attempts:number @@ -16,7 +16,7 @@ export interface ShadowsocksPingResult extends PingResult{ export default class ShadowsocksPing implements IPing{ - public async ping(options:ShadowsocksOptions) { + public async ping(options:ShadowsocksPingOptions) { const targetAddress : Buffer = Buffer.from("google.com"); const targetPort : number = 80; let shadowsocksTcpClient :ShadowsocksTcpClient; @@ -24,7 +24,7 @@ export default class ShadowsocksPing implements IPing{ return new Promise(async (reslove,reject)=>{ result = await new TcpPing().ping(options) as ShadowsocksPingResult if (result.min === undefined) { - reject(new Error("shadowsocks server unavailable!")) + reject(new Error(`shadowsocks ${options.address}:${options.port} server unavailable!`)) return; } // verify shadowsocks config is vaild @@ -38,9 +38,8 @@ export default class ShadowsocksPing implements IPing{ }) shadowsocksTcpClient.connect(ShadowsocksHeaderVersion.Domain, targetAddress, targetPort); setTimeout(() => { - shadowsocksTcpClient - .destroy(); - reject(new Error("shadowsocks server unavailable!")) + shadowsocksTcpClient.destroy(); + reject(new Error(`shadowsocks ${options.address}:${options.port} server unavailable!`)) }, options.timeout); }) diff --git a/test/shadowsocks/ShadowsocksTcpClient.ts b/test/shadowsocks/ShadowsocksTcpClient.ts index 9aa0656..e93941e 100644 --- a/test/shadowsocks/ShadowsocksTcpClient.ts +++ b/test/shadowsocks/ShadowsocksTcpClient.ts @@ -2,14 +2,21 @@ import * as net from "net"; import * as EventEmitter from "events"; import SSCrypto from "./crypto/SSCrypto"; -import ShadowsocksFormatter, { ShadowsocksHeaderVersion } from "./ShadowsocksFormatter"; -import { Address } from "cluster"; +import ShadowsocksFormatter, {ShadowsocksHeaderVersion} from "./ShadowsocksFormatter"; +import {Address} from "cluster"; +export interface ShadowsocksOptions{ + host :string, + port :string, + method :string, + passwd :string, +} + export default class ShadowsocksTcpClient extends EventEmitter { - + private method: any; private readonly socket: net.Socket = new net.Socket(); @@ -17,25 +24,23 @@ export default class ShadowsocksTcpClient extends EventEmitter { private buffersCache: Array = []; private isConnected: boolean = false; - constructor( - private host: string, - private port: number, - password: string, method: string, - private addressType: ShadowsocksHeaderVersion = ShadowsocksHeaderVersion.IPv4, - private targetHost: Buffer = Buffer.allocUnsafe(0), - private targetPort: number = 0 - ) { + constructor(private host: string, + private port: number, + password: string, method: string, + private addressType: ShadowsocksHeaderVersion = ShadowsocksHeaderVersion.IPv4, + private targetHost: Buffer = Buffer.allocUnsafe(0), + private targetPort: number = 0) { super(); this.method = SSCrypto.createCryptoMethodObject(method, password); this.socket.setNoDelay(true); } public connect(addressType: ShadowsocksHeaderVersion, targetHost?: Buffer, targetPort?: number) { - + this.socket.on("data", this.onData.bind(this)); this.socket.on("error", this.disconnect.bind(this)); this.socket.connect(this.port, this.host, this.onConnected.bind(this)); - if(ShadowsocksHeaderVersion){ + if (ShadowsocksHeaderVersion) { this.addressType = addressType; } if (targetHost) { @@ -45,7 +50,7 @@ export default class ShadowsocksTcpClient extends EventEmitter { if (targetPort) { this.targetPort = targetPort; } - + } public disconnect() { diff --git a/test/test.ts b/test/test.ts index a6320a3..54a544d 100644 --- a/test/test.ts +++ b/test/test.ts @@ -12,12 +12,12 @@ import PacketUtils from "./PacketUtils"; import * as cprocess from "child_process"; import * as NativeTypes from "./NativeTypes"; import DeviceConfiguration from "./DeviceConfiguration"; -import ShadowsocksPing, { ShadowsocksPingResult } from './shadowsocks/ShadowsocksPing'; +import ShadowsocksPing, {ShadowsocksPingResult} from "./shadowsocks/ShadowsocksPing"; // tslint:disable-next-line:no-var-requires const optimist = require("optimist") .usage("Usage: $0 --host [shadowsocks host] --port [shadowsocks port] --passwd [shadowsocks password] --xtudp [x times udp packets]") - .default("xtudp", 1) + .default("xtudp", 0) .default("host", undefined) .default("port", undefined) .default("passwd", undefined) @@ -127,13 +127,13 @@ async function main() { } /* verify shadowsocks server is available */ - try{ - const pingResult:ShadowsocksPingResult = await new ShadowsocksPing().ping({ - address:Config.get("ShadowsocksTcpHost"), - port:Config.get("ShadowsocksTcpPort"), - passwd:Config.get("ShadowsocksTcpPasswd"), - method:Config.get("ShadowsocksTcpMethod"), - attempts:10 + try { + const pingResult: ShadowsocksPingResult = await new ShadowsocksPing().ping({ + address: Config.get("ShadowsocksTcpHost"), + port: Config.get("ShadowsocksTcpPort"), + passwd: Config.get("ShadowsocksTcpPasswd"), + method: Config.get("ShadowsocksTcpMethod"), + attempts: 10, }); console.log(`shadowsocks server:${pingResult.address} ping delay max: ${pingResult.max}ms,avg:${pingResult.avg},min:${pingResult.min}`) }catch(error){ @@ -170,7 +170,7 @@ async function main() { // if (device.gatewayIpAddress === defaultGateway) { // defaultDevice = device; // } - if(device.index == tapInfo.index){ + if (device.index === tapInfo.index) { defaultDevice = device; } } @@ -206,14 +206,13 @@ async function main() { /* 设置路由表 */ { const initCommands: Array> = [ + ["route", "delete", "0.0.0.0", DeviceConfiguration.GATEWAY_IP_ADDRESS], + ["route", "delete", Config.get("DNS")], ["netsh", "interface", "ipv4", "set", "interface", `${tapInfo.index}`, "metric=1"], ["netsh", "interface", "ipv6", "set", "interface", `${tapInfo.index}`, "metric=1"], ["netsh", "interface", "ipv4", "set", "dnsservers", `${tapInfo.index}`, "static", Config.get("DNS"), "primary"], ["netsh", "interface", "ip", "set", "address", `name=${tapInfo.index}`, "static", DeviceConfiguration.LOCAL_IP_ADDRESS, DeviceConfiguration.LOCAL_NETMASK, DeviceConfiguration.GATEWAY_IP_ADDRESS], - ["route", "delete", "0.0.0.0", DeviceConfiguration.GATEWAY_IP_ADDRESS], - ["route", "delete", Config.get("DNS")], - ["route", "add", Config.get("ShadowsocksTcpHost"), "mask", "255.255.255.255", defaultGateway, "metric", "1"], ["route", "add", Config.get("ShadowsocksUdpHost"), "mask", "255.255.255.255", defaultGateway, "metric", "1"], ]; @@ -222,7 +221,7 @@ async function main() { initCommands.push( ["route", "add", Config.get("DNS"), "mask", "255.255.255.255", defaultGateway, "metric", "1"], ["netsh", "interface", "ipv4", "set", "dnsservers", `${tapInfo.index}`, "static", DeviceConfiguration.GATEWAY_IP_ADDRESS, "primary"], - ["netsh.exe", "interface", "ipv6", "set", "dnsserver", `name=${tapInfo.index}`, "source=static", `address=""`, "validate=no"], + ["netsh", "interface", "ipv6", "set", "dnsserver", `name=${tapInfo.index}`, "source=static", `address=""`, "validate=no"], ); } @@ -236,7 +235,7 @@ async function main() { initCommands.push( ["netsh", "interface", "ipv6", "set", "address", `interface=${tapInfo.index}`, `address=${DeviceConfiguration.LOCAL_IPV6_ADDRESS}`], ["netsh", "interface", "ipv6", "add", "route", "::/0", `interface=${tapInfo.index}`, `nexthop=${DeviceConfiguration.GATEWAY_IPV6_ADDRESS}`], - ["netsh.exe", "interface", "ipv6", "set", "dnsserver", `name=${tapInfo.index}`, "source=static", `address=${argv.v6dns}`, "validate=no"], + ["netsh", "interface", "ipv6", "set", "dnsserver", `name=${tapInfo.index}`, "source=static", `address=${argv.v6dns}`, "validate=no"], ); } @@ -294,13 +293,15 @@ async function main() { // tslint:disable-next-line:ban-types const filters: Array = []; - filters.push(require("./filters/TCP").default); + filters.push(require("./tunnel/ShadowsocksTunnel").default); filters.push(require("./filters/DNS").default); filters.push(require("./filters/UDP").default); filters.push(require("./filters/ARP").default); filters.push(require("./filters/NDP").default); - filters.push(require("./filters/TimesUDP").default); - + if (Config.get("XTUdp") > 0) { + filters.push(require("./filters/TimesUDP").default); + } + console.log("start...") async function loop() { const data: Buffer = await tapControl.read() as Buffer; let index: number = 0; diff --git a/test/tunnel/ShadowsocksTunnel.ts b/test/tunnel/ShadowsocksTunnel.ts new file mode 100644 index 0000000..52724d2 --- /dev/null +++ b/test/tunnel/ShadowsocksTunnel.ts @@ -0,0 +1,71 @@ +import * as EventEmitter from "events"; +import {TcpServerSession, TcpStack} from "../filters/TCP" +import ShadowsocksTcpClient from './../shadowsocks/ShadowsocksTcpClient'; +import { ShadowsocksHeaderVersion } from "../shadowsocks/ShadowsocksFormatter"; +import { EthernetType } from "../PacketsStruct"; +import Config from "../Config"; + +const SHADOWSOCKS_TUNNEL_LOG_ENABLE = false; + +class ShadowsocksTunnel extends EventEmitter{ + private shadowsocksTcpClient : ShadowsocksTcpClient = null; + + constructor( + private host:string, + private port:number, + private passwd:string, + private method:string, + private tcpSession:TcpServerSession + ){ + super(); + if(SHADOWSOCKS_TUNNEL_LOG_ENABLE)console.log("start tunnel") + const ipversion:ShadowsocksHeaderVersion = tcpSession.connection.ipversion == EthernetType.IPv4 ? ShadowsocksHeaderVersion.IPv4:ShadowsocksHeaderVersion.IPv6; + this.shadowsocksTcpClient = new ShadowsocksTcpClient( + host, + port, + passwd, + method, + ipversion, + this.tcpSession.connection.localIp, + this.tcpSession.connection.localPort + ); + this.shadowsocksTcpClient.connect(ipversion,null,null); + this.shadowsocksTcpClient.on("data",this.shadowsocksToTcp.bind(this)); + this.shadowsocksTcpClient.on("disconnected",this.shadowsocksDisconnected.bind(this)); + this.tcpSession.on("read",this.tcpToShadowsocks.bind(this)); + } + + private shadowsocksToTcp(data:Buffer){ + if(SHADOWSOCKS_TUNNEL_LOG_ENABLE)console.log("send data to tcp") + this.shadowsocksTcpClient.pause(true); + this.tcpSession.write(data); + this.shadowsocksTcpClient.pause(false); + } + + private tcpToShadowsocks(data:Buffer){ + // console.log("send data to shadowsocks server") + this.shadowsocksTcpClient.write(data); + } + + private shadowsocksDisconnected(){ + if(SHADOWSOCKS_TUNNEL_LOG_ENABLE)console.log(`close ${this.tcpSession.connection.localIp}:${this.tcpSession.connection.localPort}`) + this.tcpSession.close(); + } + +} + +export default function (data: Buffer, write: (data: Buffer) => void, next: () => void) { + const tcpStack :TcpStack = new TcpStack(write); + tcpStack.on("accept",(session)=>{ + if(SHADOWSOCKS_TUNNEL_LOG_ENABLE)console.log("accept new session") + new ShadowsocksTunnel( + Config.get("ShadowsocksTcpHost"), + Config.get("ShadowsocksTcpPort"), + Config.get("ShadowsocksTcpPasswd"), + Config.get("ShadowsocksTcpMethod"), + session + ) + }) + tcpStack.input(data); + next(); +} diff --git a/test/util/TcpPing.ts b/test/util/TcpPing.ts index 58ebe1e..5eada86 100644 --- a/test/util/TcpPing.ts +++ b/test/util/TcpPing.ts @@ -1,6 +1,6 @@ import {Socket} from 'net' -export interface Options { +export interface PingOptions { address : string, port : number, attempts?: number, @@ -24,10 +24,10 @@ export interface PingResultItem { } export interface IPing{ - ping(options:Options):any + ping(options:PingOptions):any } export default class TcpPing implements IPing { - public ping(options : Options) : Promise < PingResult > { + public ping(options : PingOptions) : Promise < PingResult > { return new Promise < PingResult > (function (reslove, reject) { let i = 0; let results : Array < PingResultItem >= [];