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