mirror of https://github.com/dnomd343/ProxyC
Dnomd343
3 years ago
7 changed files with 176 additions and 115 deletions
@ -1,109 +0,0 @@ |
|||||
#!/usr/bin/python |
|
||||
# -*- coding:utf-8 -*- |
|
||||
|
|
||||
ssMethodList = [ |
|
||||
'aes-128-gcm', |
|
||||
'aes-192-gcm', |
|
||||
'aes-256-gcm', |
|
||||
'aes-128-ctr', |
|
||||
'aes-192-ctr', |
|
||||
'aes-256-ctr', |
|
||||
'aes-128-ocb', |
|
||||
'aes-192-ocb', |
|
||||
'aes-256-ocb', |
|
||||
'aes-128-ofb', |
|
||||
'aes-192-ofb', |
|
||||
'aes-256-ofb', |
|
||||
'aes-128-cfb', |
|
||||
'aes-192-cfb', |
|
||||
'aes-256-cfb', |
|
||||
'aes-128-cfb1', |
|
||||
'aes-192-cfb1', |
|
||||
'aes-256-cfb1', |
|
||||
'aes-128-cfb8', |
|
||||
'aes-192-cfb8', |
|
||||
'aes-256-cfb8', |
|
||||
'aes-128-cfb128', |
|
||||
'aes-192-cfb128', |
|
||||
'aes-256-cfb128', |
|
||||
'camellia-128-cfb', |
|
||||
'camellia-192-cfb', |
|
||||
'camellia-256-cfb', |
|
||||
'camellia-128-cfb128', |
|
||||
'camellia-192-cfb128', |
|
||||
'camellia-256-cfb128', |
|
||||
'plain', |
|
||||
'none', |
|
||||
'table', |
|
||||
'rc4', |
|
||||
'rc4-md5', |
|
||||
'rc2-cfb', |
|
||||
'bf-cfb', |
|
||||
'cast5-cfb', |
|
||||
'des-cfb', |
|
||||
'idea-cfb', |
|
||||
'seed-cfb', |
|
||||
'salsa20', |
|
||||
'salsa20-ctr', |
|
||||
'xchacha20', |
|
||||
'chacha20', |
|
||||
'chacha20-ietf', |
|
||||
'chacha20-poly1305', |
|
||||
'chacha20-ietf-poly1305', |
|
||||
'xchacha20-ietf-poly1305' |
|
||||
] |
|
||||
|
|
||||
def test(port, password): |
|
||||
testList = [] |
|
||||
for method in ssMethodList: |
|
||||
proxyInfo = { |
|
||||
'type': 'ss', |
|
||||
'server': '127.0.0.1', |
|
||||
'port': str(port), |
|
||||
'password': password, |
|
||||
'method': method, |
|
||||
'plugin': '', |
|
||||
'pluginArg': '', |
|
||||
} |
|
||||
testInfo = 'test for ' + method |
|
||||
if method == 'plain' or method == 'none': |
|
||||
serverCommand = [ |
|
||||
'ss-rust-server', '-U', |
|
||||
'-s', '0.0.0.0:' + str(port), |
|
||||
'-k', password, |
|
||||
'-m', method |
|
||||
] |
|
||||
elif method == 'salsa20-ctr': |
|
||||
serverCommand = [ |
|
||||
'ss-bootstrap-server', |
|
||||
'--shadowsocks', 'ss-python-legacy-server', |
|
||||
'-p', str(port), |
|
||||
'-k', password, |
|
||||
'-m', method |
|
||||
] |
|
||||
else: |
|
||||
specialMethods = [ |
|
||||
'aes-128-cfb128', |
|
||||
'aes-192-cfb128', |
|
||||
'aes-256-cfb128', |
|
||||
'camellia-128-cfb128', |
|
||||
'camellia-192-cfb128', |
|
||||
'camellia-256-cfb128', |
|
||||
] |
|
||||
if method in specialMethods: |
|
||||
method = 'mbedtls:' + method |
|
||||
serverCommand = [ |
|
||||
'ss-bootstrap-server', |
|
||||
'--shadowsocks', 'ss-python-server', |
|
||||
'-p', str(port), |
|
||||
'-k', password, |
|
||||
'-m', method |
|
||||
] |
|
||||
if method == 'idea-cfb' or method == 'seed-cfb': |
|
||||
serverCommand.append('--libopenssl=libcrypto.so.1.0.0') |
|
||||
testList.append({ |
|
||||
'caption': testInfo, |
|
||||
'proxyInfo': proxyInfo, |
|
||||
'serverCommand': serverCommand |
|
||||
}) |
|
||||
return testList |
|
@ -1,4 +0,0 @@ |
|||||
#!/usr/bin/python |
|
||||
# -*- coding:utf-8 -*- |
|
||||
|
|
||||
from ProxyBuilder.test import Shadowsocks |
|
@ -0,0 +1,41 @@ |
|||||
|
#!/usr/bin/python |
||||
|
# -*- coding:utf-8 -*- |
||||
|
|
||||
|
import time |
||||
|
import subprocess |
||||
|
|
||||
|
import test as Tester |
||||
|
import ProxyBuilder as Builder |
||||
|
import ProxyChecker as Checker |
||||
|
|
||||
|
# print(dir(Tester)) |
||||
|
|
||||
|
# data = Tester.Shadowsocks(1081, 'dnomd343') |
||||
|
data = Tester.ShadowsocksR(1081, 'dnomd343') |
||||
|
|
||||
|
# for field in data: |
||||
|
# print(field['proxyInfo']) |
||||
|
# print(field['serverCommand']) |
||||
|
# print('') |
||||
|
|
||||
|
for field in data: |
||||
|
serverProcess = subprocess.Popen( |
||||
|
field['serverCommand'], |
||||
|
stdout = subprocess.DEVNULL, |
||||
|
stderr = subprocess.DEVNULL) |
||||
|
time.sleep(0.1) # 等待进程启动 |
||||
|
if serverProcess.poll() != None: # 服务端启动失败 |
||||
|
print("server unexpected exit") |
||||
|
continue |
||||
|
print(field['caption'] + ' => ', end = '') |
||||
|
client = Builder.build(field['proxyInfo'], '/tmp/ProxyC') |
||||
|
time.sleep(0.5) # 等待初始化完成 |
||||
|
if not Builder.check(client): |
||||
|
print("client unexpected exit") # 客户端启动失败 |
||||
|
else: |
||||
|
print(format(Checker.httpPing(client['port']), '.2f') + 'ms') |
||||
|
Builder.destroy(client) # 关闭客户端 |
||||
|
time.sleep(0.1) |
||||
|
serverProcess.terminate() # 关闭服务端 |
||||
|
time.sleep(0.1) |
||||
|
print() |
@ -0,0 +1,128 @@ |
|||||
|
#!/usr/bin/python |
||||
|
# -*- coding:utf-8 -*- |
||||
|
|
||||
|
|
||||
|
ssrMethodList = [ |
||||
|
"aes-128-cfb", |
||||
|
"aes-192-cfb", |
||||
|
"aes-256-cfb", |
||||
|
"aes-128-cfb1", |
||||
|
"aes-192-cfb1", |
||||
|
"aes-256-cfb1", |
||||
|
"aes-128-cfb8", |
||||
|
"aes-192-cfb8", |
||||
|
"aes-256-cfb8", |
||||
|
"aes-128-ctr", |
||||
|
"aes-192-ctr", |
||||
|
"aes-256-ctr", |
||||
|
"aes-128-gcm", |
||||
|
"aes-192-gcm", |
||||
|
"aes-256-gcm", |
||||
|
"aes-128-ofb", |
||||
|
"aes-192-ofb", |
||||
|
"aes-256-ofb", |
||||
|
"camellia-128-cfb", |
||||
|
"camellia-192-cfb", |
||||
|
"camellia-256-cfb", |
||||
|
"none", |
||||
|
"table", |
||||
|
"rc4", |
||||
|
"rc4-md5", |
||||
|
"rc4-md5-6", |
||||
|
"bf-cfb", |
||||
|
"cast5-cfb", |
||||
|
"des-cfb", |
||||
|
"idea-cfb", |
||||
|
"seed-cfb", |
||||
|
"rc2-cfb", |
||||
|
"salsa20", |
||||
|
"xsalsa20", |
||||
|
"chacha20", |
||||
|
"xchacha20", |
||||
|
"chacha20-ietf", |
||||
|
] |
||||
|
|
||||
|
ssrProtocolList = [ |
||||
|
"origin", |
||||
|
"verify_sha1", |
||||
|
"verify_simple", |
||||
|
"verify_deflate", |
||||
|
"auth_simple", |
||||
|
"auth_sha1", |
||||
|
"auth_sha1_v2", |
||||
|
"auth_sha1_v4", |
||||
|
"auth_aes128", |
||||
|
"auth_aes128_md5", |
||||
|
"auth_aes128_sha1", |
||||
|
"auth_chain_a", |
||||
|
"auth_chain_b", |
||||
|
"auth_chain_c", |
||||
|
"auth_chain_d", |
||||
|
"auth_chain_e", |
||||
|
"auth_chain_f", |
||||
|
] |
||||
|
|
||||
|
ssrObfsList = [ |
||||
|
"plain", |
||||
|
"http_post", |
||||
|
"http_simple", |
||||
|
"tls_simple", |
||||
|
"tls1.2_ticket_auth", |
||||
|
"tls1.2_ticket_fastauth", |
||||
|
"random_head", |
||||
|
] |
||||
|
|
||||
|
def test(port, password): |
||||
|
testList = [] |
||||
|
for method in ssrMethodList: |
||||
|
proxyInfo = { |
||||
|
'type': 'ssr', |
||||
|
'server': '127.0.0.1', |
||||
|
'port': int(port), |
||||
|
'password': password, |
||||
|
'method': method, |
||||
|
'protocol': 'origin', |
||||
|
'protocolParam': '', |
||||
|
'obfs': 'plain', |
||||
|
'obfsParam': '' |
||||
|
} |
||||
|
serverCommand = [ |
||||
|
'ssr-server', |
||||
|
'-p', str(port), |
||||
|
'-k', password, |
||||
|
'-m', method, |
||||
|
'-O', 'origin', |
||||
|
'-o', 'plain' |
||||
|
] |
||||
|
testList.append({ |
||||
|
'caption': 'ShadowsocksR method ' + method, |
||||
|
'proxyInfo': proxyInfo, |
||||
|
'serverCommand': serverCommand |
||||
|
}) |
||||
|
for protocol in ssrProtocolList: |
||||
|
for obfs in ssrObfsList: |
||||
|
proxyInfo = { |
||||
|
'type': 'ssr', |
||||
|
'server': '127.0.0.1', |
||||
|
'port': int(port), |
||||
|
'password': password, |
||||
|
'method': 'table', |
||||
|
'protocol': protocol, |
||||
|
'protocolParam': '', |
||||
|
'obfs': obfs, |
||||
|
'obfsParam': '' |
||||
|
} |
||||
|
serverCommand = [ |
||||
|
'ssr-server', |
||||
|
'-p', str(port), |
||||
|
'-k', password, |
||||
|
'-m', 'table', |
||||
|
'-O', protocol, |
||||
|
'-o', obfs |
||||
|
] |
||||
|
testList.append({ |
||||
|
'caption': 'ShadowsocksR protocol ' + protocol + ' obfs ' + obfs, |
||||
|
'proxyInfo': proxyInfo, |
||||
|
'serverCommand': serverCommand |
||||
|
}) |
||||
|
return testList |
Loading…
Reference in new issue