ovpn-lb-socks5/o_manager.py
2020-04-03 15:50:29 -04:00

45 lines
1.3 KiB
Python

import os
from openvpn import Openvpn
import asyncio
class OManager:
def __init__(self, base_folder, base_port=8001):
self.base_folder = base_folder
self.base_port = base_port
self.ops = []
self.idx = 0
def new_op(self, cfg_fp, name=None, additional_cfg={}):
interface = f"tun{self.idx}"
folder_path = os.path.join(self.base_folder, f"session{self.idx}")
if not os.path.isdir(folder_path):
os.makedirs(folder_path)
if not name:
name = f"openvpn-{self.idx}"
op = Openvpn(cfg_fp, interface, folder_path,
f"{self.base_port + self.idx}", name=name,
additional_cfg=additional_cfg)
self.ops.append(op)
self.idx += 1
return op
def start_op(self, idx):
self.ops[idx].start()
def get_all_ops(self):
return self.ops
def stop_all(self):
loop = asyncio.get_event_loop()
for op in self.ops:
loop.create_task(op.stop())
if __name__ == "__main__":
folder_fp = "/home/mantao/Desktop/t/"
cfg_fp = "/home/mantao/Desktop/t/TCP_Files/UK2-TCP.ovpn"
om = OManager(folder_fp)
om.new_op(cfg_fp, "op1", {
"auth-user-pass": "/home/mantao/Desktop/t/fast.txt"})