honmashironeko/ProxyCat

目前是强制公网访问,是否有计划参数化做到仅支持内网访问

Closed this issue · 4 comments

async def run_server(server: AsyncProxyServer):
    clients = set()
    server_instance = None
    try:
        server_instance = await asyncio.start_server(
            lambda r, w: handle_client_wrapper(server, r, w, clients),
            '0.0.0.0', 
            int(server.config['port'])
        )
        async with server_instance:
            await server_instance.serve_forever()
    except asyncio.CancelledError:
        logging.info("服务器正在关闭...")
    finally:
        if server_instance:
            server_instance.close()
            await server_instance.wait_closed()
        for client in clients:
            client.cancel()
        await asyncio.gather(*clients, return_exceptions=True)

这里的监听地址被固定写为 '0.0.0.0'

你在内网启动,就是内网访问了

额,这样说也没错。。。我还是做一个fork处理吧

这个地方的 0.0.0.0 是指接受所有地址的,如果单独限制为内网,会需要添加非常多,当前有账号密码配置,一般是够用

此外,计划中有增加白名单机制,你可以将内网 ip 放入白名单机制中,也可以做到你所需要的要求,不过会在后续更新当中,可以关注一下