Ejemplo n.º 1
0
##############################################################################

# ---------- config log/debug functions

configLoggingModule(args.debug)

# ---------- load and parse configuration file

config = Configuration(open(os.path.join(PATH, 'config.json'), 'r').read())
coreConfig = config.getCoreInitParameters(MODE)

# ---------- initialize IPC and ProcessManager

ipc = InternalSocketServer(coreConfig.key)
processes = ProcessManager()

# ---------- config TUN device and start up

if "client" == args.mode:
    info("Running as client.")
else:
    info("Running as server.")
tun = VirtualNetworkInterface(coreConfig.localIP, coreConfig.remoteIP)
tun.netmask = "255.255.255.0"
tun.mtu = MTU

tun.up()
info("%s: up now." % tun.name)

# ----------- prepare info for IPC clients(part of each proxy process)
Ejemplo n.º 2
0
if not queried:
    error("Configuration timed out. Exit.")
    ipc.close()
    sys.exit(1)


##############################################################################

debug("Drop privilege to %s:%s" % queried["user"])
dropRoot(*queried["user"])

##############################################################################

# start shadowsocks process

procmgr = ProcessManager()

sharedsecret= hmac.HMAC(
    str(ipc.name + '-shadowsocks'),
    queried["key"],
    hashlib.sha256
).digest().encode('base64').strip()
proxyConfig = queried["config"]

forwardToPort = proxyConfig["server"]["forward-to"] # exit port at server

if 'c' == queried["mode"]: # CLIENT mode
    if proxyConfig["client"].has_key("proxy"):
        connectIP = proxyConfig["client"]["proxy"]["ip"]
        connectPort = proxyConfig["client"]["proxy"]["port"]
    else: